sqlserver中float数值类型的不确定性

浮点型(float)这个东西,本身存储就是一个不确定的数值。比如你想要存储的是一个0,但实际存储的可能是0.0000000000071,也可能是0.0000000000662这样的数值。在平常的取数可能没有什么问题,因为取数一般都会带有精度控制,但是如果是大量的数值做汇总的话,就可能出现统计的结果多了或少了(负数)的问题。

比如你看到的存储的都是两位小数,但是汇总之后的结果就变成了七八位小数了,这在一些严格要求精度的场景中显然是不被允许的(比如统计金额)。

因此一般是建议使用numeric类型(decimal类型),这个类型能有效存储确定的精度。

"日后尽量别教今天的泪白流。"

你要去做一个大人,不要回头,不要难过。
原文地址:https://www.cnblogs.com/yanggb/p/12704425.html