Javascript 数字格式转十进制
Javascript number format to decimal
我有一个关于十进制数的问题。我需要将我的数字转换为十进制,但我无法得到我想要的。
我想要的是:
- 我想将 130000 转换为 130,000,将 20911.56 转换为 20,911,56(等等)
首先,我在这里搜索并找到了一些更改号码的解决方案:
function number_format(string,decimals=2,decimal=',',thousands='.',pre='R$ ',pos=' Reais'){
var numbers = string.toString().match(/\d+/g).join([]);
numbers = numbers.padStart(decimals+1, "0");
var splitNumbers = numbers.split("").reverse();
var mask = '';
splitNumbers.forEach(function(d,i){
if (i == decimals) { mask = decimal + mask; }
if (i>(decimals+1) && ((i-2)%(decimals+1))==0) { mask = thousands + mask; }
mask = d + mask;
});
return pre + mask + pos;
}
var element = document.getElementById("format");
var money= number_format("130000",2,',','.');
element.innerHTML = money;
上面这段代码给了我 20.911,56 但没有给我 130,000。反而是1300,00.What怎么办?我不能同时拥有它们吗?
只需使用Intl.NumberFormat
如下:
const formatter = new Intl.NumberFormat('en');
console.log(formatter.format(130000)); // 130,000
console.log(formatter.format(20911.56)); // 20,911.56
我有一个关于十进制数的问题。我需要将我的数字转换为十进制,但我无法得到我想要的。
我想要的是:
- 我想将 130000 转换为 130,000,将 20911.56 转换为 20,911,56(等等)
首先,我在这里搜索并找到了一些更改号码的解决方案:
function number_format(string,decimals=2,decimal=',',thousands='.',pre='R$ ',pos=' Reais'){ var numbers = string.toString().match(/\d+/g).join([]); numbers = numbers.padStart(decimals+1, "0"); var splitNumbers = numbers.split("").reverse(); var mask = ''; splitNumbers.forEach(function(d,i){ if (i == decimals) { mask = decimal + mask; } if (i>(decimals+1) && ((i-2)%(decimals+1))==0) { mask = thousands + mask; } mask = d + mask; }); return pre + mask + pos; } var element = document.getElementById("format"); var money= number_format("130000",2,',','.'); element.innerHTML = money;
上面这段代码给了我 20.911,56 但没有给我 130,000。反而是1300,00.What怎么办?我不能同时拥有它们吗?
只需使用Intl.NumberFormat
如下:
const formatter = new Intl.NumberFormat('en');
console.log(formatter.format(130000)); // 130,000
console.log(formatter.format(20911.56)); // 20,911.56