有趣的问题,但为什么在16.1 javascript变得“疯狂”? :)
Code:
var value1=16.1;
var value2=16.2;
console.log(value1 * 1000);
console.log(value2 * 1000);
输出:
16100.000000000002
16200
为什么?
答案 0 :(得分:1)
答案 1 :(得分:1)
那是因为javascript在内部将所有内容都转换为double。因此,由于浮点不准确,所有计算都会产生一些噪音:Floating point inaccuracy examples
解决此问题的一种方法是在所有中间计算之后向下舍入到最近的int。