ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript が大きな整数を科学表記法に変換しないようにするにはどうすればよいですか?

JavaScript が大きな整数を科学表記法に変換しないようにするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-16 03:51:09797ブラウズ

How Can I Prevent JavaScript from Converting Large Integers to Scientific Notation?

JavaScript での大きな整数の科学表記法を防止する

JavaScript で大きな整数を扱うことは、言語が整数を次のように変換する傾向があるため、難しい場合があります。 21 桁を超える数値の文字列コンテキストで使用される場合の科学表記法。これは、特に URL の一部として整数を出力する場合に問題となる可能性があります。幸いなことに、この変換を防ぎ、完全な数値を維持する方法があります。

ネイティブ JavaScript メソッド

JavaScript の Number.toFixed メソッドを使用して、数値をフォーマットすることができます。指定された小数精度。ただし、これには制限があります。1e21 以上の数値については科学的表記法に切り替わり、最大精度は 20 です。

カスタム実装

詳細柔軟性が高く、示されている「toFixed」関数などの独自の関数を作成できます。以下:

function toFixed(x) {
  // Handle small values
  if (Math.abs(x) < 1.0) {
    var e = parseInt(x.toString().split('e-')[1]);
    if (e) {
        x *= Math.pow(10,e-1);
        x = '0.' + (new Array(e)).join('0') + x.toString().substring(2);
    }
  } 
  // Handle large values
  else {
    var e = parseInt(x.toString().split('+')[1]);
    if (e > 20) {
        e -= 20;
        x /= Math.pow(10,e);
        x += (new Array(e+1)).join('0');
    }
  }
  return x;
}

JavaScript を超えて

大きな整数を含む複雑なシナリオの場合は、BigNumber、Lemon の BigInt、BigInteger などの BigInt ライブラリの使用を検討してください。最新の JavaScript バージョンでは、ネイティブ BigInt サポートも導入されています。これを使用するには、BigInt(n) を使用して整数を BigInt オブジェクトに変換し、toString() を呼び出すだけです。

以上がJavaScript が大きな整数を科学表記法に変換しないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。