我陷入了数值计算的小困惑。
在 C# 中:
> 44.5 + (((5220886 / 2) - 2496118) / 897211) * 9
< 44.5
在 JS 中:
> 44.5 + (((5220886 / 2) - 2496118) / 897211) * 9
< 45.646803817608124
哪一个是正确的?谁能帮助我理解为什么会发生这种情况?
P.S:虽然 SO 中有一篇文章正在处理 C# floats ,我的问题有点不同,因为我没有对字符串做任何事情。这是纯数值计算。
最佳答案
C# 有整数,JavaScript 没有。 C# 中的整个右侧部分是整数数学,这意味着分数被 chop 。在 C# 中,您需要添加 .0
(例如 var x = 2.0;
,var
现在是 double
)到数字以使其成为 double
,而在 JavaScript 中,所有数字在内部都表示为 double 。
关于javascript - C# 和 JS 的计算不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55017571/