Page 85 - 6105
P. 85
alert (Math.floor (3.1)); // 3
alert (Math.ceil (3.1)); // 4
alert (Math.round (3.1)); // 3
Округлення бітовими операторами
Бітові оператори роблять будь-яке число 32-бітовим цілим, обрізаючи
десяткову частину. В результаті побітова операція, яка не змінює число,
наприклад, подвійне бітове НЕ - округлює його:
alert (~~ 12.3); // 12
Будь-яка побітова операція такого роду підійде, наприклад XOR (виключає
АБО, "^") з нулем:
alert (12.3 ^ 0); // 12
alert (1.2 + 1.3 ^ 0); // 2, пріоритет ^ менше, ніж +
Це зручно в першу чергу тим, що легко читається і не змушує ставити
додаткові дужки як Math.floor (...):
var x = a * b / c ^ 0; // читається як "a * b / c і
округлити"
Для округлення до потрібної цифри після коми можна помножити і поділити
на 10 з потрібною кількістю нулів. Наприклад, округлимо 3.456 до 2-го знака після
коми:
var n = 3.456;
alert (Math.round (n * 100) / 100); // 3.456 -> 345.6 -
> 346 -> 3.46
Таким чином можна округляти число і вгору і вниз.
Існує також спеціальний метод num.toFixed (precision), який округлює
число num до точності precision і повертає результат у вигляді рядка:
var n = 12.34;
alert (n.toFixed (1)); // "12.3"
Округлення йде до найближчого значення, аналогічно Math.round:
84