JavaScript を使用して、指数値を解析して 10 進数に変換したいと考えています。4.65661287307739E-10
与えるべき0.000000000465661287307739
です。これを達成するにはどうすればよいですか?
parseFloat(4.65661287307739E-10)
戻ります4.65661287307739e-10
。
parseInt(4.65661287307739E-10)
戻ります4
。
JavaScript を使用して、指数値を解析して 10 進数に変換したいと考えています。4.65661287307739E-10
与えるべき0.000000000465661287307739
です。これを達成するにはどうすればよいですか?
parseFloat(4.65661287307739E-10)
戻ります4.65661287307739e-10
。
parseInt(4.65661287307739E-10)
戻ります4
。
を使用できますtoFixed()
が、20 個の制限があります。
元:
(4.65661287307739E-10).toFixed(20)
"0.00000000046566128731"
しかし...
(4.65661287307739E-30).toFixed(20)
"0.00000000000000000000"
したがって、小数点以下の桁数が常に 20 未満であれば問題ありません。それ以外の場合は、自分で作成する必要があると思います。
大小の小数の文字列値を表示できます。
Number.prototype.noExponents= function(){
var data= String(this).split(/[eE]/);
if(data.length== 1) return data[0];
var z= '', sign= this<0? '-':'',
str= data[0].replace('.', ''),
mag= Number(data[1])+ 1;
if(mag<0){
z= sign + '0.';
while(mag++) z += '0';
return z + str.replace(/^\-/,'');
}
mag -= str.length;
while(mag--) z += '0';
return str + z;
}
var n=4.65661287307739E-10 ;
n.noExponents()
/* returned value: (String)
0.000000000465661287307739
*/