JavaScript | 数値の有効桁数を指定して文字列に変換(toPrecision() メソッド)

javascrpit JavaScript
スポンサーリンク

以下は、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"
JavaScript

toPrecision() と 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)
丸め方式四捨五入
出力文字列(指数表記になる場合あり)
注意点整数リテラルに直接呼ぶときは括弧または空白を使う
タイトルとURLをコピーしました