Javascript:为什么这会产生丑陋的字符串???我想要货币 var总计=0; $(“.amount”)。每个(函数(){ var值=$(this.val(); value=(value.length
我试图循环浏览一些文本框并总结它们的值。这会产生一个讨厌的字符串。我错过了什么??如果我在第一个文本框中输入8,则所有文本最终将显示为“08.000.000.000.00”。我做错了什么?我想格式化为货币,但如果不是,至少只有两个十进制数字。任何指针?.toFixed将对象从数字转换为字符串 保留完整值,仅在最后使用.toFixed进行转换Javascript:为什么这会产生丑陋的字符串???我想要货币 var总计=0; $(“.amount”)。每个(函数(){ var值=$(this.val(); value=(value.length,javascript,jquery,string-formatting,Javascript,Jquery,String Formatting,我试图循环浏览一些文本框并总结它们的值。这会产生一个讨厌的字符串。我错过了什么??如果我在第一个文本框中输入8,则所有文本最终将显示为“08.000.000.000.00”。我做错了什么?我想格式化为货币,但如果不是,至少只有两个十进制数字。任何指针?.toFixed将对象从数字转换为字符串 保留完整值,仅在最后使用.toFixed进行转换 var total = 0; $(".amount").each(function () { var value = $(this).val();
var total = 0;
$(".amount").each(function () {
var value = $(this).val();
value = (value.length < 1) ? 0 : value;
var tmp = parseFloat(value).toFixed(2);
total += tmp;
});
$(".total").text(total);
或者,将字符串转换回数字
$(".total").text(total.toFixed(2));
仅供参考,jQuery有一个优秀的数学聚合插件: 使用该插件也可以间接解决您的问题 它的使用会将您的脚本减少到:
total = total + + tmp;
您正在将parseFloat转换为字符串,然后将其添加到total中。添加内容后,仅将.toFixed(2)添加到最后一行
$('.total').text($('.amount').sum());
var总计=0;
$(“.amount”)。每个(函数(){
var值=$(this.val();
value=(value.length<1)?0:值;
var tmp=解析浮点(值);
总+=tmp;
});
$(“.total”).text(total).toFixed(2);
我倾向于做的是始终以浮点或整数的形式进行数学运算,使源代码保持原样,以便将来进行任何操作。然后,我有一个编码为.money(currencySign)的原型,它纯粹用于向最终用户显示结果,但不用于任何数学运算——输出一个string.string.prototype.toMoney=function(){return“$”+this;}var amount=total.toFixed(2).toMoney()$(“.total”)。文本(金额);甜蜜的!!!很好用!++为了救我,我将.toFixed(2)
应用于float,但这将其转换为字符串,当添加一个+
时,我得到了5+5=55,而不是5+5=10.:)非常感谢。
var total = 0;
$(".amount").each(function() {
var value = $(this).val();
value = (value.length < 1) ? 0 : value;
var tmp = parseFloat(value);
total += tmp;
});
$(".total").text(total).toFixed(2);