gpt4 book ai didi

javascript - 不丢失小数的整数数组(字符串?)的总和

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:33:35 24 4
gpt4 key购买 nike

给定:我有元素的值是 integers float (谢谢你,Pointy)最多两位小数(例如:1.50 和 2.25)。

目标:收集多个元素的值并将它们相加。 (如:1.50 + 2.25 = 3.75 )

代码:

$(".quantity").keyup(function(){      
var sum = 0.00;
var subTotals = document.getElementsByClassName("sub-total")

$.each(subTotals, function(){
sum += $(this).val() << 0
});
$("#products_revenue_income").val(sum)
});

问题:我习惯了 Ruby,所以我假设迭代 [1.5, 2.25] 数组可以将元素与 += 一起添加, 得到 3.75 ,但我的返回值为 01.502.25 ,似乎 (1) 在左侧添加一个零,并且 (2) 将这些值视为字符串。当我添加移位运算符时 << ,它删除了左边的零并再次将值视为整数,但它四舍五入了总数,所以我的返回值为 3 .

我试过的:我试过使用 parseFloat($(this).val()).toFixed(2)在 block 内以确保每个值都被视为整数,但它似乎对结果没有任何影响。

技术:jQuery 版本:1.7.1。

感谢您抽出宝贵时间让我知道您是否需要任何其他背景信息。

最佳答案

这是因为 jQuery 的 val() 方法返回匹配元素的 value 属性,它是一个字符串类型。这意味着您落入了字符串连接陷阱 ("1" + "1" = "11")。您可以使用一元加号 (+) 将您的值转换为数字:

sum += +$(this).val();

还值得注意的是 valuethis 的原生属性,因此您可以在这里完全删除 jQuery 包装器和方法:

sum += +this.value;

关于javascript - 不丢失小数的整数数组(字符串?)的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25288990/

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