javascript - C# 和 JS 的计算不同

标签 javascript c#

我陷入了数值计算的小困惑。

在 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/

相关文章:

c# - 在c#代码中调用C++ dll

c# - 为什么 IL 设置这个值两次?

javascript - Owl Carousel 仅在包含部分焦点时自动播放

javascript - 使用 Javascript 除以 2 直到我达到 1

javascript - Nodejs管理不同的线程

c# - 使用绑定(bind)到类的单击事件的上下文

c# - 将 .NET 日期/时间格式字符串转换为 Javascript 日期/时间格式字符串

javascript - 使用 jquery 悬停时显示文本

javascript - 找不到模块 'newman' 需要堆栈 :

c# - 两个日期作为 C# 中的属性