JavaScript 逆引き集 | 数値を固定小数点

JavaScript JavaScript
スポンサーリンク

JavaScript数値の固定小数点表示(toFixed)の基本と実践

金額や割合など「小数点以下の桁数を揃えたい」ときは toFixed。指定した桁数に丸め、足りない桁は0で埋めた文字列を返します。


構文と挙動

const s = num.toFixed(digits); // digitsは0〜100(省略時は0)
JavaScript
  • 返り値: 文字列。数値ではなく「整形済みの文字列」を返す点に注意。
  • 桁数指定: digitsは小数点以下の桁数。省略時は0(整数化された文字列)。
  • 丸め: 指定桁に合わせて丸め(四捨五入相当)し、足りない桁は0でパディング。
  • 例外: digitsが0未満または100超ならRangeError。
  • 大きい数: 絶対値がとても大きいと科学記数法表記になることがある。

すぐ使えるテンプレート集

// 1) 基本:2桁で丸め+0埋め
const price = 34.5642;
console.log(price.toFixed(2)); // "34.56"

// 2) 整数に整形(文字列で返る)
console.log(price.toFixed());  // "35"

// 3) 0埋め(桁数を増やす)
const n = 728.52;
console.log(n.toFixed(5));     // "728.52000"

// 4) とても小さい/大きい数の扱い
console.log((1.6e-2).toFixed(3)); // "0.016"
JavaScript
  • ポイント: 返り値は文字列。計算に再利用するなら数値へ変換して使う(例:Number(…))。

実務で便利な使い方

  • 金額の表示を統一:
    • ポイント: UI表示を2桁に揃える。数値計算に再利用するときは数値化してから。
const amount = 1234.5;
const display = amount.toFixed(2); // "1234.50"
JavaScript
  • 割合の表示:
const ratio = 0.123456;
const pct = (ratio * 100).toFixed(1) + "%"; // "12.3%"
JavaScript
  • 配列の一括整形+連結:
const nums = [1.2, 3.456, 7];
console.log(nums.map(x => x.toFixed(2)).join(", ")); // "1.20, 3.46, 7.00"
JavaScript
  • 文字列→数値(計算用)へ戻す:
const rounded = Number((3.14159).toFixed(3)); // 3.142
JavaScript

よくある落とし穴と対策

  • 文字列が返る: そのまま計算に使うと連結になることも。数値化してから計算。
  • digitsの範囲: 0〜100以外はRangeError。ユーザー入力から受ける場合はバリデーション。
  • 丸め誤差(浮動小数点): 二進小数の誤差で期待と微妙にずれることがある。必要なら一度整数にスケールして丸め→戻すなどの対策を検討。
  • 科学記数法への切替: 非常に大きい数はtoStringと同様に科学記数法になる可能性。

練習問題(手を動かして覚える)

  • 1. 3桁で丸め+0埋め
const x = 3.14159;
console.log(x.toFixed(3)); // "3.142"
JavaScript
  • 2. 金額を2桁で表示し、数値として再利用
const s = (987.6).toFixed(2); // "987.60"
const v = Number(s);          // 987.6
JavaScript
  • 3. リストを表形式で整形
const data = [0.1, 0.02, 10];
console.log(data.map(n => n.toFixed(2))); // ["0.10","0.02","10.00"]
JavaScript

直感的な指針

  • 表示を揃えるなら: toFixed(digits)。
  • 計算に使うなら: 返り値を数値化してから。
  • digitsは安全に: 0〜100の範囲でバリデーション。
タイトルとURLをコピーしました