Небольшое непонимание в языке Lua.
У меня возникла проблема в понимание результата даного кода:
a = -20+12.7; // здесь в переменную а записывается -7,3
b = a + 7.3; // здесь должен получится 0 ( но ноль не получается)
c = -7.3 +7.3; // и здесь должен быть 0
print(b);
print©;
Но вот результат вывода:
-8.8817841970013e-16
0
Кто может обьяснить в чем проблема и как решить данную проблему?
78 |
Читайте на SMART-LAB:
Потенциальные инвест идеи 2026 и РИСКИ их исполнения
Традиционный ежегодный пост в начале года. Прогнозы, планы и мысли на будущее
25 год был достаточно сложным годом для российского инвестора —...
Эффект последней сделки: почему трейдеры переоценивают недавние успехи и поражения
В трейдинге одна из самых коварных ловушек — эффект последней сделки (Recency Effect). Наш мозг склонен придавать непропорциональное...
Итоги первичных размещений ВДО и некоторых розничных выпусков на 9 января 2026 г.
Следите за нашими новостями в удобном формате: Telegram , Youtube , Смартлаб , Вконтакте , Сайт
Стратегия 2026. Часть I: извлекаем правильные уроки из ошибок 2025
Those who cannot remember the past are condemned to repeat it - © George Santayana, 1905
В начале 2026 года у нас на руках стратегии 13...
a = -20.0+12.7;
double a;
Проблема у вас может возникнуть, только если вы начнете сравнивать b с нулем:
if(b == 0)… чего в программировании при использоваини вещественных чисел делать никогда не следует. Нужно писать, например
if abs(b) < 10e-8
Довольно странно, что Вы только сейчас узнали об этой проблеме: в школе/университете при написании циклов на Basic Вы были просто обязаны попасть на эту ошибку