このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
Number.prototype.toFixed()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
toFixed() はNumber 値のメソッドで、指定された小数点以下の桁数で固定小数点表記を使用して、これの数値を表す文字列を返します。
In this article
試してみましょう
function financial(x) { return Number.parseFloat(x).toFixed(2);}console.log(financial(123.456));// 予想される結果: "123.46"console.log(financial(0.004));// 予想される結果: "0.00"console.log(financial("1.23e+5"));// 予想される結果: "123000.00"構文
toFixed()toFixed(digits)引数
digits省略可小数点の後に現れる桁の数です。これは
0以上100以下の値です。この引数が省略されると、0として扱われます。
返値
指定された数値を固定小数点表記で表します。数値の大きさ(符号を無視)が 1021 以上の場合、科学記数法を使用します(Number.prototype.toString() と同じ返値)。
例外
RangeErrordigitsが0以上100以下ではない場合に発生します。TypeErrorこのメソッドが
Numberではないオブジェクト上で実行された場合に発生します。
解説
toFixed() メソッドは、指数表記を使用せずに、小数点以下の桁数が正確にdigits 桁である数値の文字列表現を返します。必要に応じて数値は丸められ、小数点以下の桁数が指定された長さに合わせるために必要に応じてゼロで埋められます。
数値の絶対値が1e+21 以上の場合は、このメソッドは単純にNumber.prototype.toString() を呼び出し、指数表記での文字列を返します。toFixed() は数値が有限数でない場合、"Infinity"、"NaN"、"-Infinity" の何れかを返します。
toFixed() の出力は、一部の値ではtoString() よりも正確かもしれませんが、これはtoString() が隣の数値と区別できる程度の有効数字しか出力しないためです。例えば、次のようになります。
(1000000000000000128).toString(); // '1000000000000000100'(1000000000000000128).toFixed(0); // '1000000000000000128'しかし、高すぎるdigits の精度を選ぶと、10 進数の小数を浮動小数点で正確に表せないため、予期せぬ結果を返すことがあります。例えば次のようになります。
(0.3).toFixed(50); // '0.29999999999999998889776975374843459576368331909180'例
>toFixed() の使用
const numObj = 12345.6789;numObj.toFixed(); // '12346'。四捨五入され小数部がなくなるnumObj.toFixed(1); // '12345.7' を返す。切り上げnumObj.toFixed(6); // '12345.678900'を返す。0 を追加(1.23e20).toFixed(2); // '123000000000000000000.00'(1.23e-10).toFixed(2); // '0.00'(2.34).toFixed(1); // '2.3'(2.35).toFixed(1); // '2.4'。切り上げ(2.55).toFixed(1); // '2.5'// 浮動小数点数で正確に表せず、最も近い浮動小数点数の// 方が低いため、切り捨てられる。(2.449999999999999999).toFixed(1); // '2.5'// 2.45 との差が Number.EPSILON 未満なので、切り上げ// このリテラルは、実際には 2.45 と同じ数値をエンコードしている(6.02 * 10 ** 23).toFixed(50); // '6.019999999999999e+23'; 巨大な数値は指数表記を使用toFixed() を負の数に使用
メンバーアクセスは単項マイナスよりも優先順位が高いので、文字列を取得するためには負の数の式全体をグループ化する必要があります。
-2.34.toFixed(1); // -2.3; 数値(-2.34).toFixed(1); // '-2.3'仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-number.prototype.tofixed> |