Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ошибка или специфический подсчет дробей (https://javascript.ru/forum/misc/62930-oshibka-ili-specificheskijj-podschet-drobejj.html)

sinusx 07.05.2016 23:59

Ошибка или специфический подсчет дробей
 
Всем привет!

Я новичек в жс, пока не могу разобраться со стандартным округлением.
Например если ввести в консоли (Crhome, Firefox):
0.45 + 2.1 = 2.5500000000000003
0.45 + 7.1 = 7.55
0.45 + 8.1 = 8.549999999999999

Почему он отображает второй ответ с 2 знаками после точки, а первый и третий с 15?
Ведь это даже не деление, я просто суммировал.

Из за этого не мог пройти задачу на codecademy с кассовым аппаратом. Логика верна, результат нет. :(

Madzal 08.05.2016 00:28

Можно умножать на 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)

sinusx 09.05.2016 00:08

с принудительным округлением понял. Спасибо. То есть это особенность языка?


Часовой пояс GMT +3, время: 22:30.