当我在浏览器控制台中尝试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时会返回整数?
答案 0 :(得分:-1)
0.14无法精确表示为javascript浮点数,因此当您乘以100时,通过转换字符串" 0.14"引入舍入误差。浮动到结果。