numeric、float和decimal数据类型之间有什么区别?在哪些情况下应该使用哪种数据类型?
对于任何类型的金融交易(例如,对于薪资领域),哪种交易是首选的,为什么?
发布于 2011-08-23 17:20:52
仅当小数(最多38位)提供的精度不足时,
才使用浮点或实数数据类型
因此,通常情况下,选择Decimal作为数据类型是最佳选择
中的decimal在
,
在.NET中,


无论使用哪种处理器体系结构或提供给float数据类型的numbers
main source:MCTS Self-Paced Training Kit (Exam 70-433): Microsoft® SQL Server® 2008 Database Development -第3章-表、数据类型和声明性数据完整性第1课-选择数据类型(指南)-第93页
发布于 2012-06-28 04:59:37
来自MSDN的指南:Using decimal, float, and real Data
数值和小数数据类型的默认最大精度为38。在Transact-SQL中,numeric在功能上等同于decimal数据类型。当必须严格按照指定的方式存储数据值时,使用decimal数据类型来存储带有小数的数字。
float和real的行为遵循IEEE 754关于近似数字数据类型的规范。由于浮点型和实型数据类型的近似性质,当需要精确的数值行为时,请不要使用这些数据类型,例如在金融应用程序中、在涉及舍入的操作中或在相等检查中。请改用integer、decimal、money或smallmoney数据类型。避免在WHERE子句搜索条件中使用浮点列或实数列,尤其是=和<>运算符。最好将浮点列和实数列限制为>或<比较。
发布于 2015-03-07 01:32:25
它们的数据类型优先级不同
十进制和数值在功能上是相同的,但仍然存在数据类型优先级,这在某些情况下可能是至关重要的。
SELECT SQL_VARIANT_PROPERTY(CAST(1 AS NUMERIC) + CAST(1 AS DECIMAL),'basetype')结果数据类型是numeric,因为它优先于数据类型。
按优先级列出的所有数据类型:
https://stackoverflow.com/questions/1056323
复制相似问题