gpt4 book ai didi

Javascript:parseFloat 不工作

转载 作者:行者123 更新时间:2023-11-30 10:51:40 25 4
gpt4 key购买 nike

我正在使用 jQuery 从网页中提取一些数据,它作为一个数组返回,其中包含我尝试添加的以下值 (.5、.25、1.25、3.75)。这是我的代码片段:

var th = 0;
for (thisrow in objGrid) {
var hours = objGrid[thisrow]['hours'];
th = th+parseFloat(hours);
console.log(hours);

$("#msgbox").html("Showing records for week: " + thisDate + ". Total Hours for the week : " + th);
}

在 console.log 中,我在几个小时内得到了这个 - 0, 0, 1, 3,它总共是 4。如果我不使用 parseFloat,我仍然会得到相同的结果(以为我会得到 NaN)。我究竟做错了什么?

最佳答案

我认为您一定有其他问题,因为您所描述的应该有效。例如(这里是你的代码的一个糟糕但直接的翻译):

var grid = [ ".5", ".25", "1.25", "3.75" ];
var th = 0;
for (x in grid){
var h = grid[x];
var hrs = parseFloat(h);
th = th + hrs;
console.log( h, hrs );
}
// .5 0.5
// .25 0.25
// 1.25 1.25
// 3.75 3.75

console.log( th );
// 5.75

无论如何,您应该对代码进行一些更改:

  1. 不要使用 for ( x in a )遍历一个数组;使用数字 for 循环:for (var i=0,len=a.length;i<len;++i)

  2. 始终 var你的变量。您正在使用并覆盖全局 thisrow多变的。即使您使用 for ... in , 这样做 for (var x in o) (除非您在函数的前面声明了您的变量)。

  3. 你应该使用 th += ...而不是 th = th + ... ,只是因为它更短,更干燥。

  4. 你应该 use *1 instead of parseFloat .它速度更快,输入更少,并且不会在您遇到不稳定的字符串时欺骗您。

关于Javascript:parseFloat 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4948791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com