Javascript:为什么会产生丑陋的字符串??? 我想要货币
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);
我正在尝试遍历一些文本框并总结它们的值。 这会产生一个令人讨厌的字符串。 我缺少什么? 如果我在第一个文本框中输入 8,则总文本最终为“08.000.000.000.00”。 我究竟做错了什么? 我想格式化为货币,但如果不是,至少只是一个两位小数。 有什么指点吗?
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);
I am trying to loop through some text boxes and sum up their values. This produces a nasty string. What am I missing?? if I put 8 in the first textbox total text ends up as " 08.000.000.000.00". What am I doing wrong? I would like to format as currency but if not, at least just a two decimal number. Any pointers?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
.toFixed 将对象从数字转换为字符串。
保留完整值,仅在最后使用 .toFixed 进行转换。
或者,将字符串转换回数字。
.toFixed converts the object from a Number to a String.
Leave the full values in place and only convert using .toFixed at the very end
Alternatively, convert the string back to a number.
仅供参考,有一个优秀的 jQuery 数学聚合插件: jQuery Calculation< /a>
使用该插件也可以间接解决您的问题。
它的使用会将您的脚本减少为:
Just FYI, there is an excellent mathematical aggregation plugin for jQuery: jQuery Calculation
Using that plugin may also indirectly solve your issue.
It's usage would reduce your script to:
您正在将 parseFloat 转换为字符串,然后将其添加到总计中。 添加内容后,仅将 .toFixed(2) 添加到最后一行。
You are converting the parseFloat into a string, then adding it to total. Only add .toFixed(2) to the final line, once things have been added.