因此,作为我正在运行的查询的一部分,我需要绝对的准确性(或尽可能接近计算机)才能获得结果。
当我将此公式插入SQL Server并运行它时:
BEGIN
PRINT cast (0.99986333333333333333333333333333333333 * 9999.99 as decimal (38, 30));
END;
我得到了结果:
9998.623334700000000000000000000000
然而,当我将这些数字插入我的物理计算器时,我得到了结果:
9998.623335
我需要知道的是哪一个是正确的,为什么?
SQL Server答案是Google Calculator生成的答案,另一个在线计算器的广告宣传极其准确。
任何人都可以向我展示/向我证明我应该使用哪一个?
干杯
乔
答案 0 :(得分:2)
我认为你已经回答了自己的问题,说明其他两个来源备份了SQL Server。
此外,如果你转换每个操作数,所以你得到精确(非浮点)数学,你会得到相同的答案:
BEGIN
PRINT CAST(CAST(0.99986333333333333333333333333333333333 AS decimal(38,30)) * CAST(9999.99 AS decimal(38,30)) as decimal (38, 30));
END;
所以我相信SQL Server的答案。