Проблемы с плавающей запятой
Проблема:
var i_devision = 100/3; console.log(i_devision); // 33.3333333333336 Сейчас решаю это просто отсеканием i_devision.toFixed(12) На хабре читал что должно помочь простое деление на 10 , а потом снова умножение на 10 - мне не помогло. Как нужно поступать в таких ситуациях при делении? |
Дело скорее не в количестве знаков, а в поведении скрипта при делении - выдаётся неверный результат.
var i_result = Math.ceil( ( 100 / 3 ) * 1.05 ); console.log(i_result); // 36 Хотя любой калькулятор ответит 35. Я просто хочу в будущем избежать таких подводных камней. Мне теперь всегда при делении пользоваться n.toFixed(12) ? Проблема вроде как банальная - должно быть надёжное решение... |
Спасибо, Rise.
Ну значит интуитивно я выбрал правильное решение. Теперь буду всегда отсекать - n.toFixed(12) . Век живи - век учись. |
Faab, привыкни к мысли, что float, это скорее текст чем число и избежишь подводных камней в сравнениях и проверках плавающих чисел.
|
Часовой пояс GMT +3, время: 02:23. |