Page 86 - 6105
P. 86
var n = 12.36;
alert (n.toFixed (1)); // "12.4"
Підсумковий рядок, при необхідності, доповнюється нулями до потрібної
точності:
var n = 12.34;
alert (n.toFixed (5)); // "12.34000", додані нулі до 5
знаків після коми
Якщо потрібно отримати саме число, то можна отримати його, застосувавши
'+' до результату n.toFixed (..):
var n = 12.34;
alert (+ n.toFixed (5)); // 12.34
Приклад. Виконати перевірку правильності додавання чисел 0.1 і 0.2.
alert (0.1 + 0.2 == 0.3);
Результатом виконання даної функції буде значення false.
Обчислимо даний вираз:
alert (0.1 + 0.2); // 0.30000000000000004
Сталася невелика обчислювальна помилка, результат складання 0.1 + 0.2
трохи більше, ніж 0.3.
alert (0.1 + 0.2> 0.3); // true
Вся справа в тому, що в стандарті IEEE 754 на число виділяється рівно 8
байт (= 64 біта), не більше і не менше. Число 0.1 (одна десята) записується просто
в десятковому форматі. Але в двійковій системі числення це нескінченний дріб,
так як одиниця на десять в двійковій системі так просто не ділиться. Також
нескінченним дробом є 0.2 (= 2/10). Двійкове значення нескінченних дробів
зберігається тільки до певного знака, тому виникає неточність. Її навіть можна
побачити:
alert (0.1.toFixed (20)); // 0.10000000000000000555
85