为什么0.14 * 100会在浏览器中返回不精确的结果?

时间:2017-04-30 15:44:16

标签: javascript math browser

当我在浏览器控制台中尝试0.14 * 100时(结果在所有浏览器中都相同),我得到了14.000000000000002。但是,如果我尝试0.14 * 1000,则会正确返回140

如果它在两种情况下都返回了近似结果,我只是假设0.14不能用二进制来精确表示,但似乎并非如此。

编辑:不,它不是Is floating point math broken?的重复 - 他们使用0.1 + 0.2,其评估为不精确的数字。同时,0.14是完全精确的,问题只发生在乘以10/100时,但它与1000一起工作。

编辑:对不起,这不准确,但重点是 - 为什么在乘以1000时会返回整数?

1 个答案:

答案 0 :(得分:-1)

0.14无法精确表示为javascript浮点数,因此当您乘以100时,通过转换字符串" 0.14"引入舍入误差。浮动到结果。