SQL中的大规模十进制计算

时间:2019-03-15 06:15:36

标签: sql sql-server excel decimal sql-server-2016

我被困在SQL Server 2016 Enterprise中执行的一些数学运算上。

我需要计算以下表达式:

(4.384 / 4.2989 * 100) * 98.8251017928029 / 100

在SQL中,我得到结果100.78141988869389772850690000

但是当我在MS Excel中计算该表达式时,我得到:100.7814199585120000

由于这些结果是消费者物价指数,因此小数点后的数字很重要。

所以,我的问题是,哪个结果正确? SQL Server或Excel。

PS。我已经更新了我的问题。 这是dbfiddle

谢谢。

2 个答案:

答案 0 :(得分:0)

我在这里发现了同样的问题:Wrong calculation in SQL-Server 我还尝试了用Java计算,它显示了excel的结果更准确。 您应该在使用sql的计算中使用十进制。

答案 1 :(得分:0)

在创建DbFiddle时,我发现强制转换出错。因此,修复错误后,现在的结果与excel中的结果几乎相同。结果差异不大,但差异落后于我对规模的需求