Opposite of Number.toExponential in JS

前端 未结 5 636
感情败类
感情败类 2020-12-10 16:36

I need to get the value of an extremely large number in JavaScript in non-exponential form. Number.toFixed simply returns it in exponential form as a string, wh

5条回答
  •  半阙折子戏
    2020-12-10 16:59

    "10000000000000000000000000000000"?

    Hard to believe that anybody would rather look at that than 1.0e+31,

    or in html: 1031. But here's one way, much of it is for negative exponents(fractions):

    function longnumberstring(n){
        var str, str2= '', data= n.toExponential().replace('.','').split(/e/i);
        str= data[0], mag= Number(data[1]);
        if(mag>=0 && str.length> mag){
            mag+=1;
            return str.substring(0, mag)+'.'+str.substring(mag);            
        }
        if(mag<0){
            while(++mag) str2+= '0';
            return '0.'+str2+str;
        }
        mag= (mag-str.length)+1;
        while(mag> str2.length){
            str2+= '0';
        }
        return str+str2;
    }
    
    
    
    input: 1e+30
    longnumberstring: 1000000000000000000000000000000
    to Number: 1e+30
    input: 1.456789123456e-30
    longnumberstring: 0.000000000000000000000000000001456789123456
    to Number: 1.456789123456e-30
    input: 1.456789123456e+30
    longnumberstring: 1456789123456000000000000000000
    to Number: 1.456789123456e+30
    input: 1e+80 longnumberstring: 100000000000000000000000000000000000000000000000000000000000000000000000000000000
    to Number: 1e+80
    

提交回复
热议问题