計算処理で切り上げ・切り捨て・四捨五入を使うが、忘れてしまうのでまとめてみた。

切り上げ
Math.ceil(x)
[javascript]
console.log(Math.ceil(0.0)); // 0
console.log(Math.ceil(0.1)); // 1
console.log(Math.ceil(0.5)); // 1
console.log(Math.ceil(0.9)); // 1
console.log(Math.ceil(1.0)); // 1
[/javascript]

切り捨て
Math.floor(x)
[javascript]
console.log(Math.floor(0.0)); // 0
console.log(Math.floor(0.1)); // 0
console.log(Math.floor(0.5)); // 0
console.log(Math.floor(0.9)); // 0
console.log(Math.floor(1.0)); // 1
[/javascript]

四捨五入
Math.round(x)
[javascript]
console.log(Math.round(0.0)); // 0
console.log(Math.round(0.1)); // 0
console.log(Math.round(0.5)); // 1
console.log(Math.round(0.9)); // 1
console.log(Math.round(1.0)); // 1
[/javascript]

例えば、xが900から1000で十の位以下の切り上げ・切り捨て・四捨五入を行う場合、xの値を100で除算して結果を求め、その結果を100で乗算すればよい。
[javascript]
console.log(Math.ceil(900 / 100) * 100); // 900
console.log(Math.ceil(901 / 100) * 100); // 1000
console.log(Math.ceil(950 / 100) * 100); // 1000
console.log(Math.ceil(999 / 100) * 100); // 1000
console.log(Math.ceil(1000 / 100) * 100); // 1000

console.log(Math.floor(900 / 100) * 100); // 900
console.log(Math.floor(901 / 100) * 100); // 900
console.log(Math.floor(950 / 100) * 100); // 900
console.log(Math.floor(999 / 100) * 100); // 900
console.log(Math.floor(1000 / 100) * 100); // 1000

console.log(Math.round(900 / 100) * 100); // 900
console.log(Math.round(901 / 100) * 100); // 900
console.log(Math.round(950 / 100) * 100); // 1000
console.log(Math.round(999 / 100) * 100); // 1000
console.log(Math.round(1000 / 100) * 100); // 1000
[/javascript]

xが0.09~0.1で少数第三位以下の切り上げ・切り捨て・四捨五入を行う場合、xの値を100で乗算して結果を求め、その結果を100で除算すればよい。
[javascript]
console.log(Math.ceil(0.0900 * 100) / 100); // 0.09
console.log(Math.ceil(0.0901 * 100) / 100); // 0.1
console.log(Math.ceil(0.0950 * 100) / 100); // 0.1
console.log(Math.ceil(0.0999 * 100) / 100); // 0.1
console.log(Math.ceil(0.1000 * 100) / 100); // 0.1

console.log(Math.floor(0.0900 * 100) / 100); // 0.09
console.log(Math.floor(0.0901 * 100) / 100); // 0.09
console.log(Math.floor(0.0950 * 100) / 100); // 0.09
console.log(Math.floor(0.0999 * 100) / 100); // 0.09
console.log(Math.floor(0.1000 * 100) / 100); // 0.1

console.log(Math.round(0.0900 * 100) / 100); // 0.09
console.log(Math.round(0.0901 * 100) / 100); // 0.09
console.log(Math.round(0.0950 * 100) / 100); // 0.1
console.log(Math.round(0.0999 * 100) / 100); // 0.1
console.log(Math.round(0.1000 * 100) / 100); // 0.1
[/javascript]

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

新品価格
¥3,218から
(2018/10/13 15:00時点)

Recommended Posts