当我尝试使用google开发工具将长数字转换为字符串和数组时,我遇到了问题。
let m=123000000000000000000000000000000
//1.23e+32
m=m+'good'
//"1.23e+32good"
// instead of "123000000000000000000000000000000good"
我打算得到[“1”,“2”,“3”,“0”,......“0”]的结果,但现在我被卡住了。 有谁知道如何解决这个问题? 感谢。
Intl.NumberFormat 是一个很好的方法,但是当我尝试一个很长的数字时:
Intl.NumberFormat('en-US', {useGrouping: false}).format(73167176531330624919225119674426574742355349194934)
//"73167176531330600000000000000000000000000000000000"
OPS。还有一个问题。
答案 0 :(得分:1)
使用Intl.NumberFormat
API:
Intl.NumberFormat('en-US', {useGrouping: false}).format(123000000000000000000000000000000)
返回一个字符串:
"123000000000000000000000000000000"
答案 1 :(得分:0)
function numberToDigitNumber(number) {
let arrayOfNumber = number.toString().split('e+');
let digitsOfNumber = arrayOfNumber[0].replace('.' , '');
for(let i = 0; i < Number(arrayOfNumber[1]); i++) {
digitsOfNumber += '0';
}
return digitsOfNumber;
}
let num = 123000000000000000000000000000000;
console.log(numberToDigitNumber(num) + ', instead of ' + num);
// -> 123000000000000000000000000000000 instead of 123e+32
使用此功能,我为此问题创建了一个。你可以定义一个变量并用这个fuckion分配它的数值;
let myNumber = numberToDigitNumber(123000000000000);
答案 2 :(得分:0)
改为使用字符串:
//current result
var m = 123000000000000000000000000000000;
m = m + 'good';
console.log(m);
//desired result
var n = '123000000000000000000000000000000';
n = n + 'good';
console.log(n);
&#13;