如果数字不是十进制,我需要附加.00
,但是当我尝试下面的代码时,它将整数更改为0.00
。例如,如果数字为12,200
,它将更改为0.00
,而不是在末尾添加.00
$('.total-amount').each(function() {
var x = Number($(this).val()).toFixed(2);
$(this).val(x).text(x);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="total-in-basket">
<div class="total-description">
total is:
</div>
<div class="total-amount">
$ 12,200
</div>
</div>
答案 0 :(得分:4)
一些问题:
div
没有value
属性,因此.val()
将不起作用。使用.text()
Number
应用于带有美元符号或逗号的内容将返回NaN
您可以使用replace
删除非数字字符(但允许使用小数点),然后将其提供给Intl.NumberFormat
提供的格式化程序:
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
});
$('.total-amount').each(function() {
var x = $(this).text().replace(/[^\d.]/g, "");
$(this).text(formatter.format(x));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="total-in-basket">
<div class="total-description">
total is:
</div>
<div class="total-amount">
$ 12,200
</div>
</div>