【发布时间】:2018-05-01 14:40:01
【问题描述】:
以下是我的 sql 表中的列值。当我使用桌面计算器将它们相加时,总和为 0
但是在 sql 中,当我取 Item_Quantity 的总和时,我得到一个奇怪的值,如下所示
此列的数据类型是浮点数。我能得到一些帮助吗?谢谢。
【问题讨论】:
-
这是一个浮点值,接近0。
-
如果您想使用精确的十进制数据,那么您选择了错误的数据类型来表示它。由于 float 不能精确地表示所有 十进制 值,因此您所展示的结果并不意外。
-
如果您需要精确的结果,基本上可以将列类型更改为十进制。但请记住,十进制计算通常比浮点数慢。我建议阅读:stackoverflow.com/questions/1056323/…
-
浮点数在内部表示为二进制数。例如。
0.2是二进制的0.00110011001100110011...,具有无限次重复的0011,当然,必须在计算机中截断。因此,您看到的小错误。见:Decimal to Binary converter
标签: sql sql-server