Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:为什么这会产生丑陋的字符串???我想要货币 var总计=0; $(“.amount”)。每个(函数(){ var值=$(this.val(); value=(value.length_Javascript_Jquery_String Formatting - Fatal编程技术网

Javascript:为什么这会产生丑陋的字符串???我想要货币 var总计=0; $(“.amount”)。每个(函数(){ var值=$(this.val(); value=(value.length

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();

我试图循环浏览一些文本框并总结它们的值。这会产生一个讨厌的字符串。我错过了什么??如果我在第一个文本框中输入8,则所有文本最终将显示为“08.000.000.000.00”。我做错了什么?我想格式化为货币,但如果不是,至少只有两个十进制数字。任何指针?

.toFixed将对象从数字转换为字符串

保留完整值,仅在最后使用.toFixed进行转换

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);