JavaScript/Math/round
< JavaScript | Math
Math.round(x) は、引数 x を最も近い整数に丸めた値を返します。具体的には、x の小数部分が 0.5 以上の場合には切り上げ、0.5 未満の場合には切り捨てを行います[1]。
- 引数
xがNaNの場合、NaNを返します。 - 引数
xが+0または-0の場合、xをそのまま返します。 - 引数
xがInfinityまたは-Infinityの場合、xをそのまま返します。
例
編集数値を丸めるプログラム
編集以下のプログラムは、ユーザーが入力した数値を最も近い整数に丸めます。
const f = p => { for (;;) { a = prompt(`${p}は何ですか?`); if (!isNaN(a)) return a; alert(`${p}に、入力ミスがあります。 "${a}"`); } } for (;;) { const x = f("数値"); const rounded = Math.round(x); if (rounded !== Infinity) { alert(`数値 ${x} を丸めると ${rounded} です。`); break; } alert("入力が大きすぎます。"); }
このプログラムでは、Math.round を使用して数値を最も近い整数に丸めています。ユーザーが入力した数値が NaN や Infinity の場合、適切に処理されます。
小数点以下を指定して丸めるプログラム
編集以下のプログラムは、ユーザーが入力した数値を小数点以下指定桁数で丸めます。
const f = p => { for (;;) { a = prompt(`${p}は何ですか?`); if (!isNaN(a)) return a; alert(`${p}に、入力ミスがあります。 "${a}"`); } } for (;;) { const x = f("数値"); const digits = f("小数点以下の桁数"); const factor = 10 ** digits; const rounded = Math.round(x * factor) / factor; if (rounded !== Infinity) { alert(`数値 ${x} を小数点以下 ${digits} 桁で丸めると ${rounded} です。`); break; } alert("入力が大きすぎます。"); }
このプログラムでは、Math.round を使用して数値を小数点以下指定桁数で丸めています。例えば、x = 3.14159 で digits = 2 の場合、rounded は 3.14 になります。
注意点
編集- 0.5 の扱い:
Math.roundは、xがちょうど0.5の場合に切り上げを行います。例えば、Math.round(1.5)は2を返します。 - 浮動小数点演算の誤差: 浮動小数点演算の特性上、
xが0.49999999999999994のような値の場合、Math.round(x)は1を返すことがあります。これは、浮動小数点数の精度によるものです。
脚註
編集- ^ これは、数学的には四捨五入に相当しますが、浮動小数点演算の特性上、
xがちょうど0.5の場合の挙動に注意が必要です。
外部リンク
編集