JavaScript/Math/trunc
表示
< JavaScript | Math
Math.trunc(x)
は、引数 x
の小数部分を切り捨てて整数部分を返します。これは、x
の符号を維持したまま、小数点以下を削除する操作です[1]。
- 引数
x
がNaN
の場合、NaN
を返します。 - 引数
x
が+0
または-0
の場合、x
をそのまま返します。 - 引数
x
がInfinity
または-Infinity
の場合、x
をそのまま返します。
例
[編集]数値の整数部分を取得するプログラム
[編集]以下のプログラムは、ユーザーが入力した数値の整数部分を取得します。
constf=p=>{for(;;){a=prompt(`${p}は何ですか?`);if(!isNaN(a))returna;alert(`${p}に、入力ミスがあります。 "${a}"`);}}for(;;){constx=f("数値");consttruncated=Math.trunc(x);if(truncated!==Infinity){alert(`数値 ${x} の整数部分は ${truncated} です。`);break;}alert("入力が大きすぎます。");}
このプログラムでは、Math.trunc
を使用して数値の整数部分を取得しています。ユーザーが入力した数値が NaN
や Infinity
の場合、適切に処理されます。
小数点以下を切り捨てるプログラム
[編集]以下のプログラムは、ユーザーが入力した数値を小数点以下指定桁数で切り捨てます。
constf=p=>{for(;;){a=prompt(`${p}は何ですか?`);if(!isNaN(a))returna;alert(`${p}に、入力ミスがあります。 "${a}"`);}}for(;;){constx=f("数値");constdigits=f("小数点以下の桁数");constfactor=10**digits;consttruncated=Math.trunc(x*factor)/factor;if(truncated!==Infinity){alert(`数値 ${x} を小数点以下 ${digits} 桁で切り捨てると ${truncated} です。`);break;}alert("入力が大きすぎます。");}
このプログラムでは、Math.trunc
を使用して数値を小数点以下指定桁数で切り捨てています。例えば、x = 3.14159
で digits = 2
の場合、truncated
は 3.14
になります。
注意点
[編集]- 負の数の扱い:
Math.trunc
は、負の数に対してもゼロに向かって切り捨てます。例えば、Math.trunc(-3.7)
は-3
を返します。 - 浮動小数点演算の誤差: 浮動小数点演算の特性上、
x
が0.9999999999999999
のような値の場合、Math.trunc(x)
は0
を返すことがあります。これは、浮動小数点数の精度によるものです。
脚註
[編集]- ^これは、数学的には床関数(floor function)と天井関数(ceiling function)の組み合わせに相当しますが、
Math.trunc
は常にゼロに向かって切り捨てます。