【发布时间】:2020-01-15 09:06:14
【问题描述】:
我正在尝试创建一个函数,该函数将对从用户输入接收到的数字进行格式化,以便在正确的位置添加逗号。例如,1000 变为 1,000。 1000000 变成 1,000,000 以此类推。
var formatNumber = function (num) {
var numSplit, dec, int;
num = Math.abs(num);
num = num.toFixed(2);
numSplit = num.split('.');
int = numSplit[0];
dec = numSplit[1];
if (int.length > 3 && int.length <= 6) {
int = int.substr(0, int.length - 3) + ',' + int.substr(int.length - 3, 4);
} else if (int.length > 6) {
int = int.substr(0, int.length - 6) + ',' + int.substr(int.length - 6, int.length - 4) + ',' + int.substr(int.length - 3, 7);
}
return int + '.' + dec
}
该功能适用于最多 7 位的数字。 100 万完美地变成 1,000,000.00,但在此之上它又增加了一个零,因此 1000 万变成 10,0000,000.00。如何解决这个问题?
这是一个代码笔:https://codepen.io/samivino/pen/ZEzRjjy
P.s.- 高于 999,999,999 的数字不相关,因此无需添加超过 2 个逗号。
【问题讨论】:
-
(1000000).toLocaleString()例如 (docs)?
标签: javascript substring