読み込み中...

JavaScriptで四捨五入をマスターしよう!7つの驚くべき使い方とサンプルコード

JavaScriptで四捨五入を使いこなす方法を徹底解説 JS
この記事は約9分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

JavaScriptで四捨五入を活用する場面は多岐にわたります。

数値データの整形や表示、金額計算における端数処理など、様々な状況で重宝します。

本稿では、JavaScriptにおける四捨五入の基本から応用まで、実践的なコード例を交えて詳しく解説します。

初心者の方でも理解しやすいよう、段階的に説明を進めていきますので、ぜひ最後までお付き合いください。

●JavaScriptで四捨五入を使う理由

数値データを扱う際、四捨五入は非常に重要な役割を果たします。

計算結果の小数点以下を適切に丸めることで、見やすく分かりやすい形式で数値を表示できます。

金融アプリケーションにおいて、端数を処理する際にも四捨五入が欠かせません。データの可視化やグラフ作成時にも、値を整形するために頻繁に使用されます。

JavaScriptで四捨五入を利用することで、ユーザーにとって理解しやすい形式でデータを提示できるだけでなく、計算の正確性も向上させることができます。

例えば、商品の価格を表示する際に、小数点以下を適切に四捨五入することで、より読みやすい価格表示が可能になります。

●四捨五入の基本的な使い方

JavaScriptには、四捨五入を行うための基本的な関数が用意されています。

ここでは、最も一般的に使用されるMath.round()関数について詳しく説明します。

この関数を理解することで、多くの場面で四捨五入を適切に行うことができるようになります。

○Math.round()による四捨五入

JavaScriptで四捨五入を行う最も基本的な方法は、Math.round()関数を使用することです。

この関数は、与えられた数値を最も近い整数に丸めて返します。具体的な使用方法を見てみましょう。

let num = 3.5;
let rounded = Math.round(num); // 4
console.log(rounded);

このコードでは、変数numに3.5という数値を代入しています。

Math.round()関数を使ってこの値を四捨五入すると、結果は4になります。

この関数は、小数点以下の値が0.5以上の場合は切り上げ、0.5未満の場合は切り捨てるという規則で動作します。

Math.round()関数は非常にシンプルで使いやすいため、基本的な四捨五入のニーズのほとんどをカバーできます。

しかし、より複雑な要求に応えるためには、カスタム関数を作成する必要があることもあります。

●四捨五入の応用例

基本的な四捨五入の方法を理解したところで、より実践的な応用例を見ていきましょう。

実際の開発現場では、単純な四捨五入だけでなく、特定の条件下での四捨五入や、大量のデータを効率的に処理する方法が求められることがあります。

ここでは、そのような状況に対応するためのテクニックを紹介します。

○サンプルコード2:小数点以下の桁数を指定して四捨五入

実際の開発では、小数点以下の特定の桁数まで四捨五入したい場合がよくあります。

そのような場合、次のようなカスタム関数を作成すると便利です。

function roundToDecimalPlace(num, decimalPlace) {
  let multiplier = Math.pow(10, decimalPlace);
  return Math.round(num * multiplier) / multiplier;
}

let num = 3.1415;
let rounded = roundToDecimalPlace(num, 2); // 3.14
console.log(rounded);

この関数roundToDecimalPlaceは、第一引数に四捨五入したい数値、第二引数に小数点以下の桁数を指定します。

内部では、指定された桁数に応じて数値を調整し、Math.round()を適用した後、元の桁数に戻すという処理を行っています。

この方法を使えば、例えば金額計算で小数点以下2桁まで表示したい場合や、科学的な計算で特定の精度が必要な場合など、様々なシーンで活用できます。

○サンプルコード3:四捨五入の結果を整数にする

時には、四捨五入の結果を必ず整数として扱いたい場合もあるでしょう。

そのような場合は、Math.round()関数とparseInt()関数を組み合わせて使用します。

let num = 3.5;
let rounded = parseInt(Math.round(num)); // 4
console.log(rounded);

このコードでは、まずMath.round()で四捨五入を行い、その結果をparseInt()関数に渡しています。

parseInt()関数は、与えられた値を整数に変換する役割を果たします。

この方法は、例えば在庫管理システムで、小数点以下の数量を扱わない場合などに有用です。

四捨五入した結果を確実に整数として扱うことで、データの一貫性を保つことができます。

○サンプルコード4:ユーザー入力によって四捨五入する桁数を変更

ウェブアプリケーションでは、ユーザーが四捨五入の桁数を指定できるようにしたい場合があります。

次のコードは、そのような機能を実装する例です。

function roundToUserInput(num, userInput) {
  let decimalPlace = parseInt(userInput);
  let multiplier = Math.pow(10, decimalPlace);
  return Math.round(num * multiplier) / multiplier;
}

let num = 3.1415;
let userInput = prompt("小数点以下何桁まで四捨五入しますか?");
let rounded = roundToUserInput(num, userInput);
console.log(rounded);

この例では、prompt()関数を使ってユーザーから入力を受け取り、その値を基に四捨五入を行っています。

ユーザーインターフェースの設計によっては、入力値のバリデーションを追加するとより堅牢になるでしょう。

この方法は、ユーザーに柔軟性を提供したい場合に特に有用です。

例えば、データ分析ツールで、ユーザーが必要に応じて精度を調整できるようにする場合などに活用できます。

○サンプルコード5:グラフの値を四捨五入して表示

データの可視化において、グラフに表示する値を適切に四捨五入することで、見やすさが大幅に向上します。

そのような処理を行う例を見てみましょう。

function roundToDecimalPlace(num, decimalPlace) {
  let multiplier = Math.pow(10, decimalPlace);
  return Math.round(num * multiplier) / multiplier;
}

let graphData = [3.1415, 2.7182, 1.6180];
let roundedData = graphData.map((num) => roundToDecimalPlace(num, 2));

console.log(roundedData); // [3.14, 2.72, 1.62]

このコードでは、グラフに表示するデータの配列を、map()関数を使って一括で四捨五入しています。

これにより、全てのデータポイントが統一された形式で表示されるため、グラフの可読性が向上します。

この手法は、特に大量のデータポイントを持つグラフや、精度の高い数値を扱うグラフで効果を発揮します。

ユーザーにとって読みやすく、かつ必要な精度を保った形でデータを提示することができます。

○サンプルコード6:配列の数値を一括で四捨五入

大量のデータを処理する場合、配列内の全ての数値を効率的に四捨五入したいことがあります。

そのような場合、map()関数を活用すると便利です。

function roundToDecimalPlace(num, decimalPlace) {
  let multiplier = Math.pow(10, decimalPlace);
  return Math.round(num * multiplier) / multiplier;
}

let numbers = [3.1415, 2.7182, 1.6180];
let decimalPlace = 2;
let roundedNumbers = numbers.map((num) => roundToDecimalPlace(num, decimalPlace));

console.log(roundedNumbers); // [3.14, 2.72, 1.62]

このコードでは、配列numbersの各要素に対して、roundToDecimalPlace関数を適用しています。

map()関数を使うことで、元の配列を変更することなく新しい配列を生成できるため、元のデータを保持しつつ四捨五入された値を得ることができます。

この方法は、大規模なデータセットを処理する際に特に有用です。

例えば、センサーから取得した多数の測定値を一括で処理する場合や、財務データの一括整形などに活用できます。

●四捨五入の注意点と対処法

JavaScriptで四捨五入を行う際には、いくつかの注意点があります。

特に、浮動小数点数の扱いに関しては慎重になる必要があります。

ここでは、よくある問題とその対処法について説明します。

○サンプルコード7:toFixed()メソッドを使った誤差の回避

JavaScriptで四捨五入を行う際、浮動小数点数の扱いに起因する誤差が生じる場合があります。

例えば、0.1 + 0.2の結果を四捨五入しても、期待通りの0.3にならないことがあります。

このような問題に対処するためには、toFixed()メソッドを使用するのが効果的です。

let num = 0.1 + 0.2;
let rounded = parseFloat(num.toFixed(2)); // 0.3
console.log(rounded);

このコードでは、0.1 + 0.2の計算結果をtoFixed()メソッドで小数点以下2桁に制限した後、parseFloat()関数で数値に変換しています。

まとめ

本記事では、JavaScriptにおける四捨五入の基本的な使い方から、より高度な応用例まで幅広く解説しました。

Math.round()関数を基本として、小数点以下の桁数指定、ユーザー入力への対応、配列処理、そして浮動小数点数の誤差対策まで、実践的なコード例を交えて説明しました。

技術を適切に活用することで、数値データの取り扱いがより正確かつ効率的になり、アプリケーションの品質向上につながります。

ぜひ、ご自身のプロジェクトで実際に試してみてください。