作为一个例子,我发现了一个简单的计算,例如:
select cast(200.00 as float) + 1908.30 + 170.00 + (-1150.00) + (-1128.30)
作为正常添加,这会导致0.00
但 SQL Server 显示结果为2.27373675443232E-13
.
这是为什么?我该如何避免这种情况?
这个错误是固有的float
数据类型,并且是存在的原因decimal
类型。永远不要像这样进行金钱计算float
values!
你可以看一下每个计算机科学家都应该了解的浮点运算知识 http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html,或任何“浮点舍入错误”的 Google 结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)