数学计算中的Javascript问题
为什么在javascript中执行此操作时,会得到以下结果: 1234.56*10=12345.599999999 应该是123456。我怎样才能避开这个问题数学计算中的Javascript问题,javascript,floating-accuracy,Javascript,Floating Accuracy,为什么在javascript中执行此操作时,会得到以下结果: 1234.56*10=12345.599999999 应该是123456。我怎样才能避开这个问题 谢谢。浮点不是精确的,因为在它们的范围内[或者更精确地说在任何范围内]都有ifinite数字,并且只有有限的位数来存储这些数据 看一看。JS中的所有数字都是由浮点内部定义的,如果需要,可以去掉不太重要的数字 (10000000000000000000000000000 + 1) == 100000000000000000000000000
谢谢。浮点不是精确的,因为在它们的范围内[或者更精确地说在任何范围内]都有ifinite数字,并且只有有限的位数来存储这些数据
看一看。JS中的所有数字都是由浮点内部定义的,如果需要,可以去掉不太重要的数字
(10000000000000000000000000000 + 1) == 10000000000000000000000000000
// this will return true
众所周知,javascript经常在数字中丢失位。所以要小心处理正如其他人所说,浮点等等 简单的解决办法是这样做:
var answer = parseInt(1234.56 * 10);
或者只使用Math.round?另一个简单的解决方案:
parseFloat((1234.56 * 10).toPrecision(12))
结果是:12345.6,是的。。。它适用于十进制数。不太清楚使用jQuery是什么意思。jQuery是一个DOM操作扩展,而不是一个数学库。你能发布一个代码示例吗?同样,它是12345.6-你必须乘以100才能得到123456。参见