我有一个函数,它将通过单击按钮从currentTime的计时器产生数组值。在这种情况下是这样的结果:JavaScript十进制缩减产生不正确的结果
var data_catch = ["0", "24.871604", "27.1788", "29.69", "29.100", "30.570661"];
然后我需要得到具有规则排列值之间的持续时间,导致我用这样的方式“下一个值将由前值减少”:
var data_duration = [];
for (var i = 1; i < data_catch.length; i++) {
data_duration.push(data_catch[i]-data_catch[i-1]);
}
console.log(data_duration);
data_duration
的值不能为负数,因为定时器总是在前进,当前时间总是比先前的当前时间有更大的值。但在这种情况下data_duration的结果是:
data_duration = [
24.871604,
2.3071959999999976,
2.5112000000000023,
-0.5899999999999999,
1.4706609999999998
];
结果都因为这减少29.100 - 29.69
这是为什么发生,如何解决这一问题的一个负值?请帮我..
这是一个简单的数学问题:你真的相信29.69小于29.100? –
其实我认为问题是他如何生成数组中的值,因为29.69 - 29.100> 0并不意味着破浮点 – lustoykov
雅我已经读过,但仍不知道如何解决这个问题.. – fandiahm