谷歌开发者工具

时间:2018-03-15 17:39:03

标签: javascript

当我尝试使用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。还有一个问题。

3 个答案:

答案 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)

改为使用字符串:

&#13;
&#13;
//current result
var m = 123000000000000000000000000000000;
m = m + 'good';
console.log(m);

//desired result
var n = '123000000000000000000000000000000';
n = n + 'good';
console.log(n);
&#13;
&#13;
&#13;