我要在千位数中添加一个逗号,但是这些数字具有十进制值,因此十进制值也添加了我不希望的逗号
例如:默认数字2476.570550272,我要添加逗号2,476.570550272
使用下面的代码后,我也将逗号转换为十进制数,例如2,476.570,550,272。
$.fn.digits = function () {
return this.each(function () {
$(this).text($(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
})
}
$(".number").digits();
答案 0 :(得分:2)
JavaScript为此提供了一个功能,称为NumberFormat:
const number = 123456.789123123123;
const yourFormat = new Intl.NumberFormat('en-EN',{ maximumFractionDigits: 5 });
console.log(yourFormat.format(number));
该功能用途广泛,here you can find more options。我建议阅读一下它也可以将来使用。它有很多选择,对于货币也非常推荐。
答案 1 :(得分:1)
尝试一下。
function numberWithCommas(ADD-YOUR-NUM-HERE) {
var parts = number.toString().split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");
}
答案 2 :(得分:0)
这是您的正则表达式的香草味改编,可以按您指定的方式工作。
digits(document.querySelectorAll(".numInput"));
function digits(inputs){
for(let input of inputs){
const [int, dec] = input.value.split(".");
input.value = int.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") + (dec ? "."+dec : "");
}
}
<input class="numInput" value="4321.09876" />
<input class="numInput" value="987654321" />
<input class="numInput" value=".123456789" />