Javascript неправильно складывает дробные числа

Manless

Client
Регистрация
09.01.2014
Сообщения
186
Благодарностей
33
Баллы
28
Попробуйте сложить 0.01000000+0.34000000 в кубике JS.
Получится Результат: 0.35000000000000003

Попробуйте выполнить 5+0.01+0.34-5
И получится результат 0.34999999999999964

Какого хрена? Что я делаю не так?

Версия ZP 5.24
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 352
Благодарностей
3 279
Баллы
113

Manless

Client
Регистрация
09.01.2014
Сообщения
186
Благодарностей
33
Баллы
28
Потому, что это

Лучше по возможности использовать decimal в C#.
Тогда вопрос: как мне посчитать в C# выражение 5+0.01+0.34-5, которое нужно брать из переменной? :-) Подскажите поажлуйста
 
Последнее редактирование:

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 352
Благодарностей
3 279
Баллы
113
@Manless
JavaScript:
Math.round(eval('5+0.01+0.34-5*1') * 100) / 100;
взаместо '5+0.01+0.34-5*1' ставится переменная.
100 - задаёт кол-во чисел после запятой.
 
Последнее редактирование:
  • Спасибо
Реакции: Manless

Manless

Client
Регистрация
09.01.2014
Сообщения
186
Благодарностей
33
Баллы
28
@Manless
JavaScript:
Math.round(eval('5+0.01+0.34-5*1') * 100) / 100;
взаместо '5+0.01+0.34-5*1' ставится переменная.
100 - задаёт кол-во чисел после запятой.
Спасибо пока работает, но доверия уже нет к JS. Мало ли он округлит не в ту сторону)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)