这个问题在这里已有答案:
如果这个常见问题或新手问题,请原谅..
我想知道为什么JS计算返回错误的结果,我有这样的计算
console.log(((11000 * 100) / (100 + 1) * 1) / 100);
当我使用计算器它返回110,但当我使用JS计算它返回108.91089108910892
这是一个例子:
console.log(((11000 * 100) / (100 + 1) * 1) / 100);
有没有办法解决这个问题?或者我做错了计算?我试过.toFixed()方法,但这不是我想要的..
nb:我已经读过这个solution,但这只是将价值四舍五入而不是结果(我的差异很大110到108.91089 ...)
计算是对的
这是它的实际外观
(11000*100)
------------
(100+1)*1
_____________________
100
以上翻译为
1100000 1
--------- X ------
101 100
按照BODMAS规则进行此计算,结果为108.91(约)
当将.1或1/10转换为基数2(二进制)时,在小数点后得到一个重复模式,就像试图在基数10中表示1/3一样。该值不精确,因此不使用常见浮动方法。