21

JavaScript を使用して、指数値を解析して 10 進数に変換したいと考えています。4.65661287307739E-10与えるべき0.000000000465661287307739です。これを達成するにはどうすればよいですか?

parseFloat(4.65661287307739E-10)戻ります4.65661287307739e-10

parseInt(4.65661287307739E-10)戻ります4

4

8 に答える 8

29

を使用できますtoFixed()が、20 個の制限があります。

元:

(4.65661287307739E-10).toFixed(20)
"0.00000000046566128731"

しかし...

(4.65661287307739E-30).toFixed(20)
"0.00000000000000000000"

したがって、小数点以下の桁数が常に 20 未満であれば問題ありません。それ以外の場合は、自分で作成する必要があると思います。

于 2013-09-10T13:13:46.890 に答える
18

大小の小数の文字列値を表示できます。

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
*/
于 2013-09-10T13:16:11.627 に答える