JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで浮動小数点数の精度を扱う方法【toPrecision()メソッドの使い方】

JavaScriptで浮動小数点数の精度を扱うには、toPrecision()メソッドを使用します。このメソッドを使うことで、数値を指定した有効桁数でフォーマットできます。

toPrecision()メソッドの基本

toPrecision()はNumberオブジェクトのメソッドの一つで、引数に指定した有効桁数(1〜100)に基づいて数値を文字列として返します。浮動小数点数は内部的に二進数で表現されるため、計算結果に微小な誤差が含まれることがあります。そのような場合に、表示する桁数を制御したいときに非常に便利です。

コード例

<!DOCTYPE html>
<html>
   <body>
      <script>
         var num = 28.6754;
         document.write(num.toPrecision(3));
         document.write("<br>"+num.toPrecision(2));
         document.write("<br>"+num.toPrecision(5));
      </script>
   </body>
</html>

実行結果

28.7
29
28.675

コードの解説

この例では、変数numに28.6754という数値を代入し、toPrecision()メソッドにそれぞれ「3」「2」「5」を引数として渡して呼び出しています。

  • toPrecision(3):有効桁数3桁で「28.7」を出力
  • toPrecision(2):有効桁数2桁で「29」を出力
  • toPrecision(5):有効桁数5桁で「28.675」を出力

このように、引数に渡した有効桁数に応じて数値が丸められ、結果が文字列として返されます。

補足:toFixed()メソッドとの違い

小数点以下の桁数を指定したい場合は、toFixed()メソッドを使用します。toPrecision()が「有効桁数全体」を指定するのに対し、toFixed()は「小数点以下の桁数」を指定する点が異なります。たとえば、金額の表示など小数点以下を固定したい場合にはtoFixed()が、全体の桁数を制御したい場合にはtoPrecision()が適しています。用途に応じて使い分けるとよいでしょう。

  1. 【JavaScript】ゼロを含む文字列を数値に変換する方法をわかりやすく解説

    JavaScriptでは、ドット(.)やゼロを含む文字列を数値として扱いたい場面があります。例えば、次のような文字列があったとします。var stringValue="453.000.00.00.0000";このようにゼロや区切り文字を含む文字列をそのまま数値変換しようとすると、意図した結果になりません。そこで、replace()メソッドで不要なドットを取り除き、parseInt()で整数に変換するという2段階の処理を行います。var numberValue = parseInt(stringValue.replace(/\./gm, ''));コード全体の

  2. C言語で浮動小数点数のセットビット数を数える方法を解説

    この問題では、1つの浮動小数点数が与えられ、その2進表現におけるセットビット(1になっているビット)の数を求める必要があります。例えば、浮動小数点数が 0.15625 の場合、セットビットは6個になります。一般的なCコンパイラでは、単精度浮動小数点形式で数値が表現されるため、メモリ上では次のようなビット列として格納されます。考え方:ポインタとバイト単位での処理浮動小数点数をビット値に変換して調べるには、まず対象の数値をポインタ変数に渡し、そのポインタを char* 型にキャストします。こうすることで、float型のデータを1バイトずつ順番に処理できるようになり、各バイト(char型)ごとのセッ