ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の小数点以下の桁数への丸め: 完全ガイド
JavaScript では精度が非常に重要であり、正確な計算ときれいな書式設定のためには、JavaScript の小数点第 2 位までの四捨五入をマスターすることが不可欠です。このブログでは、JavaScript の Math.round や Math.floor などのメソッドを検討します。ボーナスとして、高度なシナリオで数値を小数点以下 n 桁に四捨五入する方法についても説明します!
数値の四捨五入は、プログラミングで数値を扱う上で重要な側面です。 JavaScript の小数点第 2 位までの四捨五入により、計算が簡素化され、可読性が向上し、実際のアプリケーションでの精度が保証されます。たとえば、金融取引、パーセンテージ、測定値では、混乱や解釈の誤りを引き起こす可能性がある過度に正確な数値を避けるために、四捨五入された値が必要になることがよくあります。
JavaScript の小数点以下 2 桁への四捨五入について説明するのは、通貨計算などのシナリオでは小数点以下 2 桁が標準であるためです。小数点以下 2 桁を超える精度は不要であり、丸め誤差や不一致が発生する可能性があります。たとえば、通常、価格は $10.9876 ではなく $10.99 と表示されます。 JavaScript の小数点第 2 位への四捨五入に重点を置くことで、精度、実用性、そしてユーザーフレンドリーな結果を保証します。
JavaScript で数値を四捨五入する場合、最も簡単な方法は、組み込みの Math.round メソッドと Math.floor メソッドを使用することです。これらの方法は実装が簡単で、ほとんどの場合にうまく機能しますが、いくつかの特殊なケースや考慮すべき落とし穴が伴います。
Math.round は、数値を最も近い整数に丸める最も簡単な方法です。小数点以下 2 桁に四捨五入するには、数値をスケールし、丸めを実行し、スケールバックします。
const roundToTwo = (num) => Math.round(num * 100) / 100; console.log(roundToTwo(12.345)); // Output: 12.35 console.log(roundToTwo(12.344)); // Output: 12.34
数値が 2 つの値のちょうど中間にある場合、Math.round は常に最も近い偶数に向かって丸めます。これにより、特定の状況では予期しない結果が生じる可能性があります。
console.log(roundToTwo(12.345)); // Output: 12.35 console.log(roundToTwo(12.335)); // Output: 12.33
Math.floor は常に最も近い整数に切り捨てられます。小数点第 2 位に四捨五入するには、同じスケーリング トリックを適用します。
const floorToTwo = (num) => Math.floor(num * 100) / 100; console.log(floorToTwo(12.345)); // Output: 12.34 console.log(floorToTwo(12.349)); // Output: 12.34
Math.floor は、標準的な丸め動作が必要な場合には理想的ではありません。切り上げるべき数値が不正確になる可能性があります。
const roundToTwo = (num) => Math.round(num * 100) / 100; console.log(roundToTwo(12.345)); // Output: 12.35 console.log(roundToTwo(12.344)); // Output: 12.34
console.log(roundToTwo(12.345)); // Output: 12.35 console.log(roundToTwo(12.335)); // Output: 12.33
これは、浮動小数点演算により 1.005 * 100 が 100.49999999999999 になり、Math.round が誤って丸められるために発生します。次のセクションでは、高度な方法を使用してこのような問題に対処します!
Math.round や Math.floor などの古典的なメソッドに加えて、JavaScript は正確な丸めのための高度なテクニックを提供します。これらのメソッドは、JavaScript 小数点以下 2 桁への四捨五入の一般的な落とし穴に対処し、浮動小数点演算、オブジェクト指向のアプローチ、ユーザー定義の柔軟性の調整を含む堅牢なソリューションを提供します。
JavaScript の浮動小数点演算は、特に JavaScript の小数点第 2 位への四捨五入で予期しない結果を引き起こす可能性があります。 Number.EPSILON (1 より大きい結果を得るために 1 に加算できる最小値) を追加すると、これらのエラーを軽減できます。
const floorToTwo = (num) => Math.floor(num * 100) / 100; console.log(floorToTwo(12.345)); // Output: 12.34 console.log(floorToTwo(12.349)); // Output: 12.34
Number.EPSILON は浮動小数点計算の微細な誤差を補正し、1.005 や 1.255 などの扱いにくい数値の小数点第 2 位に四捨五入する JavaScript の精度を向上させます。
Intl.NumberFormat API は、ロケール固有の規則に従って数値をフォーマットするための多用途のコンストラクターです。これは、小数点以下 2 桁に四捨五入する JavaScript に特に役立ち、小数点と小数点の桁のカスタマイズ可能なオプションを提供します。
console.log(floorToTwo(12.349)); // Output: 12.34 (Expected: 12.35)
カスタム関数は、JavaScript の小数点第 2 位までの四捨五入の特定のシナリオを処理する優れた方法です。たとえば、指数表記を使用すると、小数点以下の桁を正確に制御できます。
console.log(roundToTwo(1.005)); // Output: 1 (Expected: 1.01)
カスタム関数は、複雑なシナリオであっても、特殊なケースを処理し、JavaScript の小数点第 2 位までの四捨五入の精度を保証できます。
数値を小数点以下 2 桁に四捨五入するだけでなく、任意の小数点以下の桁数 (小数点以下 n 桁目) に四捨五入する必要がある状況もあります。これには、浮動小数点精度の誤差を最小限に抑える、堅牢かつ柔軟なアプローチが必要です。
次の関数は、数値をスケールし、四捨五入してからスケールダウンします。また、浮動小数点の不正確さを処理するために Number.EPSILON も組み込まれています。
const roundToTwo = (num) => Math.round(num * 100) / 100; console.log(roundToTwo(12.345)); // Output: 12.35 console.log(roundToTwo(12.344)); // Output: 12.34
console.log(roundToTwo(12.345)); // Output: 12.35 console.log(roundToTwo(12.335)); // Output: 12.33
toFixed メソッドは使用できますが、数値の代わりに文字列を返し、浮動小数点の不正確さには直接対処しません。
const floorToTwo = (num) => Math.floor(num * 100) / 100; console.log(floorToTwo(12.345)); // Output: 12.34 console.log(floorToTwo(12.349)); // Output: 12.34
カスタム関数を使用することで、プロセスが簡素化され、不必要な変換が回避されます。
JavaScript での数値の四捨五入は、計算とデータ表示の正確性を確保するために重要なタスクです。 Math.round や Math.floor などの古典的なメソッド、Number.EPSILON、Intl.NumberFormat を使用した高度なテクニック、さらには浮動小数点精度の問題を効果的に処理するための堅牢なカスタム関数を検討してきました。小数点第 n 位への四捨五入など、より複雑なシナリオについては、信頼性の高い結果を保証する、柔軟でエラーのないアプローチを実証しました。
JavaScript の丸め方法の詳細については、公式 JavaScript Math ドキュメントを参照してください。
以上がJavaScript の小数点以下の桁数への丸め: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。