Javascript十进制减少产生错误的结果

Javascript十进制减少产生错误的结果,javascript,jquery,Javascript,Jquery,我有一个函数,可以通过点击按钮从计时器的currentTime生成数组值。在这种情况下,结果如下: 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++)

我有一个函数,可以通过点击按钮从计时器的currentTime生成数组值。在这种情况下,结果如下:

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);
由于此减少,结果有一个负值
29.100-29.69
为什么会发生这种情况以及如何解决?请帮帮我。

你可以用它来获得绝对值。而且从数学上讲,
29.69
大于29.100

var数据_catch=[“0”、“24.871604”、“27.1788”、“29.69”、“29.100”、“30.570661”];
var数据_持续时间=[];
对于(变量i=1;i
您可以使用来获取绝对值。从数学上讲,
29.69
大于29.100

var数据_catch=[“0”、“24.871604”、“27.1788”、“29.69”、“29.100”、“30.570661”];
var数据_持续时间=[];
对于(变量i=1;iconsole.log(数据持续时间)这是一个简单的数学问题:你真的相信29.69比29.100小吗?事实上,我认为问题在于他如何生成数组中的值,因为29.69-29.100>0并不意味着浮点值被破坏。我已经读过了,但仍然不知道如何解决这个问题。下面的答案解决了这个问题。。谢谢你,Gentelmant这是一个简单的数学问题:你真的相信29.69比29.100小吗?事实上,我认为问题在于他如何生成数组中的值,因为29.69-29.100>0并不意味着浮点值被破坏。我已经读过了,但仍然不知道如何解决这个问题。下面的答案解决了这个问题。。谢谢你,先生们,我的问题解决了。我不懂这个数学。我会继续学习的。非常感谢…这不是一个好的解决方案,当用户单击按钮时,您需要为数据捕获设置正确的值。@Atmahadli解决方案的目的是演示
Math.abs()
的用法。该问题没有描述任何
按钮
。我很抱歉,如果我错过了任何要求有时有些人不知道确切的问题,问错了问题。据我所知,这里的问题是为什么使用abs将data_catch数组从29.69减少到29.100?(注意,这是由于用户不时单击),结果是abs(29.100-29.69)=0.59;我认为正确的数据是29.069,因此正确的结果应该是29.100-29.069=0.031;这解决了我的问题。我不懂这个数学。我会继续学习的。非常感谢…这不是一个好的解决方案,当用户单击按钮时,您需要为数据捕获设置正确的值。@Atmahadli解决方案的目的是演示
Math.abs()
的用法。该问题没有描述任何
按钮
。我很抱歉,如果我错过了任何要求有时有些人不知道确切的问题,问错了问题。据我所知,这里的问题是为什么使用abs将data_catch数组从29.69减少到29.100?(注意,这是由于用户不时单击),结果是abs(29.100-29.69)=0.59;我认为正确的数据是29.069,因此正确的结果应该是29.100-29.069=0.031;
data_duration = [
  24.871604, 
  2.3071959999999976, 
  2.5112000000000023, 
  -0.5899999999999999, 
  1.4706609999999998
];