Ошибка или специфический подсчет дробей
Всем привет!
Я новичек в жс, пока не могу разобраться со стандартным округлением. Например если ввести в консоли (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, время: 15:11. |