使用javascript添加浮动
我使用的是jQuery,我想对表列中的值求和,一切似乎都正常,但返回的值是一个字符串,其中添加了所有值,如:使用javascript添加浮动,javascript,jquery,Javascript,Jquery,我使用的是jQuery,我想对表列中的值求和,一切似乎都正常,但返回的值是一个字符串,其中添加了所有值,如:123.5013.0012.35 我怎样才能把这些加起来呢 var totals $(".add").each(function(i) { totals += parseFloat($(this).text()).toFixed(2); }); console.log(totals); 以下是一个工作版本(在firefox 3.5中测试): 数之和 $(函数(){ var合计=
123.5013.0012.35
我怎样才能把这些加起来呢
var totals
$(".add").each(function(i) {
totals += parseFloat($(this).text()).toFixed(2);
});
console.log(totals);
以下是一个工作版本(在firefox 3.5中测试):
数之和
$(函数(){
var合计=0;
$(“.add”).each(函数(){
total+=parseFloat($(this.text());
});
警报(toFixed总数(2));
});
23.4567
98.7654
这只是众多方法之一。看看这个问题,了解其他几种方法:
看起来像是在进行字符串添加。尝试将var总计设置为0 这里有多个错误。一种是不将总数初始化为数字,如0.0。第二个是没有意识到.toFixed()返回一个字符串。Javascript将字符串连接在一起,而不是添加数字 基本上相同的问题已经被问过了,答案应该能帮你解决这个问题
var totals
$(".add").each(function(i) {
totals += parseFloat($(this).text());
});
console.log(totals.toFixed(2));
可能使用数学。圆形、地板或天花板简单试试这个。它对我有用
function update_total() {
var total = 0.0;
$('.invoice_service_price').each(function(index){
var val=parseFloat($(this).html().trim());
if(!isNaN(val)) total += val;
});
alert("total="+total);
};
var totals= 0;
$(".add").each(function() {
if (jQuery(this).val() != '')
totals= Number(totals) + Number(jQuery(this).val());
});
console.log(totals);
它是一种货币,所以我需要它有2个小数位的精度。如果您只是想让最终输出具有该精度,请在结束前暂停调用toFixed(2)。到那时为止,所有的事情都是添加数字,而不是字符串。如果你关心中间的计算,你需要考虑几件事。如果这是一个“玩具”应用程序,请对toFixed()的输出使用parseFloat()以确保它再次是一个数字,然后在最后再次调用toFixed()。如果这是一个“真实”的应用程序,您可能不应该对货币使用浮点值。请等到最后再使用。我不应该初始化值,对吗?是的,或者结果未定义。在我尝试的FF3.5中,如果我没有初始化它,结果是“NaN”。它仍然返回一个字符串,如
02.3402220.000
这对我来说很有效,我将浮点存储在一个对象中,不知何故它一直被视为一个字符串,所以我是明确的:[-]total+=parseFloat($(This).text())
[+]total=parseFloat(total)+parseFloat($(this.text())代码>伙计。为什么在得到总数之前要使用toFixed
?这将它转换为一个字符串,然后它们被追加。你的产出应该让你参与其中。其次,假设它确实如您所想的那样工作(保持为浮点数),那么在得到总数之前,您可能会降低精度。
var totals= 0;
$(".add").each(function() {
if (jQuery(this).val() != '')
totals= Number(totals) + Number(jQuery(this).val());
});
console.log(totals);