"10000000000000000000000000000000"?
Itβs hard to believe that someone would rather look at 1.0e + 31,
or in html: 10 31 . But here is one of the methods, most of which relate to negative indicators (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
source share