我知道在toLocalString()
之类的javascript中有in-build功能来实现数字格式化。但这个问题纯粹是为了学习和逻辑理解。
我在javascript中有一个函数,用于格式化印度数字格式标准中的给定数字(例如:1,234 | 12,21,123 | etc)
代码
function formatter(input) {
var inputStr = input.toString(), l = inputStr.length;
var c = 1, f = 0;
console.log(l);
for (var x=l-1; x>=0; x--) {
if (x === 0) {
continue;
}
if (c === 3 && f === 0) {
inputStr = inputStr.substring(0, x) + ',' + inputStr.substring(x);
f = 1;
c = 0;
} else if (c % 2 === 0 && f === 1) {
inputStr = inputStr.substring(0, x) + ',' + inputStr.substring(x);
c = 0;
}
c++;
}
return inputStr;
}
现在这在大多数情况下都有效(据我测试,如果发现任何错误,请指出错误)。但我的问题是如何处理大数字,即如何处理大于9007199254740991的值。