为了账号安全,请及时绑定邮箱和手机立即绑定

SQL Server中数值、浮点数和十进制的差异

SQL Server中数值、浮点数和十进制的差异

慕少森 2019-06-28 15:59:48
SQL Server中数值、浮点数和十进制的差异我在谷歌搜索并访问了十进制和数字和SQLServer助手收集数字、浮点数和十进制数据类型之间的差异,并找出在哪种情况下应该使用哪种数据类型。对于任何类型的金融交易(例如工资领域),哪个优先考虑,为什么?
查看完整描述

3 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

MSDN指南:使用十进制、浮点和实数据

数值和十进制数据类型的默认最大精度为38。在Transact-SQL中,数字在功能上等同于十进制数据类型。当必须按照指定的方式存储数据值时,使用十进制数据类型存储带有小数的数字。

浮点和实的行为遵循IEEE 754关于近似数字数据类型的规范。由于浮点数和实际数据类型的近似性质,当需要精确的数字行为时,例如在财务应用程序、涉及四舍五入的操作或等式检查中,不要使用这些数据类型。相反,使用整数、十进制、货币或小额货币数据类型。避免在WHERE子句搜索条件中使用Float或REAL列,尤其是=和<>运算符。最好将浮动列和实际列限制为>或<比较。


查看完整回答
反对 回复 2019-06-28
?
慕斯709654

TA贡献1840条经验 获得超5个赞

它们在数据类型优先性方面存在差异

十进制数字是一样的功能上但还是有数据类型优先,这在某些情况下可能是至关重要的。

SELECT SQL_VARIANT_PROPERTY(CAST(1 AS NUMERIC) + CAST(1 AS DECIMAL),'basetype')

结果数据类型是数字因为这需要数据类型优先.

按优先顺序分列的详尽的数据类型列表:

参考链接


查看完整回答
反对 回复 2019-06-28
  • 3 回答
  • 0 关注
  • 769 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信