Ошибка или специфический подсчет дробей
Всем привет!
Я новичек в жс, пока не могу разобраться со стандартным округлением. Например если ввести в консоли (Crhome, Firefox): 0.45 + 2.1 = 2.5500000000000003 0.45 + 7.1 = 7.55 0.45 + 8.1 = 8.549999999999999 Почему он отображает второй ответ с 2 знаками после точки, а первый и третий с 15? Ведь это даже не деление, я просто суммировал. Из за этого не мог пройти задачу на codecademy с кассовым аппаратом. Логика верна, результат нет. :( |
Можно умножать на 10,потом делить на 10,вот функция
function sum() { var result = 0; for (var i = 0, max = arguments.length; i< max; i++ ) { result += arguments[i]*10; } return result / 10; } sum(0.45,2.1) // 2.55 либо просто округляйте до сотых (0.45 + 2.1).toFixed(2) |
с принудительным округлением понял. Спасибо. То есть это особенность языка?
|
Часовой пояс GMT +3, время: 22:30. |