SQL-Server中的计算错误

Ice*_*Ice 3 sql-server

作为一个例子,我发现了一个简单的计算:

select cast(200.00 as float) + 1908.30 + 170.00 + (-1150.00) + (-1128.30)
Run Code Online (Sandbox Code Playgroud)

作为正常添加,这会导致0.00SQL Server将结果显示为2.27373675443232E-13.

为什么这样,我怎么能避免这个?

Ama*_*dan 6

此错误是float数据类型中固有的,也是类型存在的原因decimal.永远不要把钱算作float价值!

你可以看看每个计算机科学家应该知道的关于浮点算术的内容,或任何谷歌"浮动舍入错误"的结果.