以下は、JavaScript の toPrecision() メソッドについて、
実際のコード例や丸め処理の細かい挙動を初心者向けにかみ砕いて詳しく説明した内容です。
toPrecision() とは?
toPrecision() は、**「有効桁数」**を指定して数値を文字列に変換するメソッドです。
基本構文
number.toPrecision(桁数)
JavaScript🔸「小数点以下の桁数」ではなく、**全体での桁数(有効桁数)**を指定します。
例1:基本的な使い方
let num = 123.456;
console.log(num.toPrecision(4)); // "123.5"
console.log(num.toPrecision(2)); // "1.2e+2"
console.log(num.toPrecision(6)); // "123.456"
JavaScript| コード | 出力 | 説明 |
|---|
toPrecision(4) | "123.5" | 有効4桁 → 四捨五入で123.5に |
toPrecision(2) | "1.2e+2" | 有効2桁で指数表記(1.2×10²)に変換 |
toPrecision(6) | "123.456" | もともと6桁なのでそのまま表示 |
例2:丸め処理(四捨五入)
toPrecision() は 四捨五入 のルールで処理されます。
let a = 9.995;
console.log(a.toPrecision(3)); // "10.0"
JavaScript説明:
- 有効3桁で考えると「9.995 → 10.0」に丸められます。
- このとき、「桁上がり」によって全体の桁数が変わることもあります。
例3:末尾のゼロが自動的に補われる
let num = 12.3;
console.log(num.toPrecision(4)); // "12.30"
console.log(num.toPrecision(2)); // "12"
JavaScript- 有効桁数4桁を満たすために
"12.30"のように 0が補われる ことがあります。 - 一方、2桁では
"12"として返されます。
例4:指数表記(科学的記数法)になるケース
非常に大きい/小さい値では、自動的に指数表記になります。
let x = 0.00012345;
console.log(x.toPrecision(3)); // "0.000123"
console.log(x.toPrecision(2)); // "0.00012"
console.log(x.toPrecision(1)); // "0.0001"
console.log(x.toPrecision(4)); // "0.0001235"
console.log(x.toPrecision(2)); // "0.00012"
JavaScriptまた、より小さい有効桁数を指定すると指数表記に自動変換:
console.log(x.toPrecision(2)); // "0.00012"
console.log(x.toPrecision(1)); // "0.0001"
console.log(123456789.toPrecision(4)); // "1.235e+8"
JavaScript例5:整数に直接使うときの注意点
数値リテラルに続けて . を書くと文法エラーになることがあります。
これを避けるためには 括弧を使う または 空白を入れる。
// ❌ エラー
// console.log(48.toPrecision(3)); // SyntaxError
// ✅ OK(括弧を使う)
console.log((48).toPrecision(3)); // "48.0"
// ✅ OK(空白を入れる)
console.log(48 .toPrecision(2)); // "48"
JavaScripttoPrecision() と toFixed() の違い
| 比較項目 | toPrecision() | toFixed() |
|---|---|---|
| 指定内容 | 有効桁数(全体) | 小数点以下の桁数 |
| 返り値 | 文字列 | 文字列 |
| 丸め方式 | 四捨五入 | 四捨五入 |
| 出力形式 | 指数表記になることあり | 常に通常の小数表記 |
| 例 | 123.456.toPrecision(2) → "1.2e+2" | 123.456.toFixed(2) → "123.46" |
例6:違いの比較コード
let num = 123.456;
console.log(num.toPrecision(4)); // "123.5" → 有効4桁
console.log(num.toFixed(4)); // "123.4560" → 小数点以下4桁
JavaScript✅
toPrecisionは「全体の桁数」を意識して、
✅toFixedは「小数点以下の桁数」を意識します。
まとめ
| 特徴 | 内容 |
|---|---|
| メソッド | toPrecision() |
| 引数 | 有効桁数(1〜21) |
| 丸め方式 | 四捨五入 |
| 出力 | 文字列(指数表記になる場合あり) |
| 注意点 | 整数リテラルに直接呼ぶときは括弧または空白を使う |
