【JS応用|豆知識】JavaScriptのMath.sqrtで「平方根」をスマートに計算する

導入

フロントエンド開発において、図形の描画、物理演算、グラフの作成などを行う際、「平方根(ルート)」を求める必要が出てくる場面は少なくありません。JavaScriptには、標準で用意されている「Math.sqrt」という強力なAPIがあります。これを使うことで、複雑な数式を自前で書くことなく、正確かつ高速に平方根を算出でき、コードの可読性を大幅に向上させることが可能です。

基礎知識

「平方根」とは、ある数値を2乗したときに元の数値になる数のことです。例えば、9の平方根は3(3 × 3 = 9)となります。JavaScriptのMathオブジェクトは、数学的な定数や関数を扱うための静的オブジェクトです。Math.sqrt(x)は、引数に指定した数値「x」の平方根を返します。もし引数に負の値を指定した場合は「NaN(Not a Number)」が返るため、計算前に値が正であることを確認する仕組みが必要です。

実装/解決策

Math.sqrtを安全に使うためのポイントは、入力値が正の数であるかのバリデーションを行うことです。また、計算結果が浮動小数点数になることが多いため、必要に応じて「toFixed」メソッドで桁数を丸めるなどの処理を加えると、UI上の表示で扱いやすくなります。

サンプルプログラム

以下のコードは、入力値の平方根を求め、結果が正しいかどうかを判定する実用的な例です。

// 平方根を計算する関数
function getSquareRoot(value) {
  // 負の数であれば計算できないためエラーを返す
  if (value < 0) {
    return "計算不能 (負の数は指定できません)";
  }

  // Math.sqrtで平方根を計算
  const result = Math.sqrt(value);

  // 小数点第2位までに丸めて返す
  return result.toFixed(2);
}

// 実行例
console.log("16の平方根: " + getSquareRoot(16));   // 結果: 4.00
console.log("2の平方根: " + getSquareRoot(2));     // 結果: 1.41
console.log("-5の平方根: " + getSquareRoot(-5));   // 結果: 計算不能

応用・注意点

現場でよくある失敗として、ユーザーからの入力値(input要素など)をそのままMath.sqrtに渡してしまうケースがあります。HTMLの入力値は文字列として扱われるため、必ず「Number()」や「parseFloat()」で数値型に変換してから渡すようにしてください。また、非常に大きな数値や複雑な計算を行う場合は、計算精度(浮動小数点の誤差)に注意が必要です。厳密な計算が求められる金融系アプリケーションなどでは、Math.sqrtではなく、専用のライブラリや整数演算での対応を検討しましょう。

タイトルとURLをコピーしました