Javascript中的简单减法错误

Uma*_*bar 15 javascript

我很惊讶在JS中看到这样一个基本的减法错误,我相信你们这里的大多数人都会遇到这个问题,请帮我解决这个问题,我所做的就是从100中减去一个数字,这会产生意想不到的结果,一个例子如下所述

100 - 99.1
// returns 0.9000000000000057
Run Code Online (Sandbox Code Playgroud)

我在这里做错了吗?:SI很困惑

Sac*_*hag 12

浮点值永远不会像您期望的那样准确.您可以使用Number对象将其转换为您需要的答案.

Number(100).toFixed(2) - Number(99.1).toFixed(2)
Run Code Online (Sandbox Code Playgroud)

  • `Number(100 - 99.1).toFixed(2)` 更简洁,你不会增加错误,因为 100 在 base-2 中已经完全可以表示了。 (2认同)

jrh*_*ath 7

您正在使用浮点数,而不是整数.这是预料之中的.

原因是你不能准确地表示二进制中的0.1和0.3之类的数字.就像你不能以十进制形式表示1/3累积.