Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.05.2016, 23:59
Новичок на форуме
Отправить личное сообщение для sinusx Посмотреть профиль Найти все сообщения от sinusx
 
Регистрация: 07.05.2016
Сообщений: 3

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

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

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

Из за этого не мог пройти задачу на codecademy с кассовым аппаратом. Логика верна, результат нет.
Ответить с цитированием
  #2 (permalink)  
Старый 08.05.2016, 00:28
Аспирант
Отправить личное сообщение для Madzal Посмотреть профиль Найти все сообщения от Madzal
 
Регистрация: 18.02.2016
Сообщений: 62

Можно умножать на 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)
Ответить с цитированием
  #3 (permalink)  
Старый 09.05.2016, 00:08
Новичок на форуме
Отправить личное сообщение для sinusx Посмотреть профиль Найти все сообщения от sinusx
 
Регистрация: 07.05.2016
Сообщений: 3

с принудительным округлением понял. Спасибо. То есть это особенность языка?
Ответить с цитированием
  #4 (permalink)  
Старый 11.05.2016, 16:51
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,672

sinusx, Неточные вычисления
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему ошибка при статусе 200, или как сформировать ответ? [NodeJS&AJAX] blacklool AJAX и COMET 2 10.03.2015 21:36
Кастомный селект, чекбокс, радио vostok Ваши сайты и скрипты 0 12.08.2013 00:33
Рекурсия не работает? или ошибка? adelante jQuery 1 13.12.2012 10:31
Ошибка: "'xmlDoc' - есть null или не является объектом" seregarem Элементы интерфейса 18 26.02.2012 15:31
Непонятная ошибка в IE6 Servest Internet Explorer 14 10.10.2010 13:19