Небольшое непонимание в языке 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:
Народный портфель. Норникель снова заменил Роснефть
Московская биржа опубликовала данные о «Народном портфеле» на конец 2025 г. Рассмотрим, какие бумаги были популярны у российских частных...
📈 Почему важно инвестировать в компании с понятной логикой роста
Инвестору важно не просто видеть рост цифр, а понимать, откуда он берётся. Когда динамика объяснима, к ней проще относиться спокойно — без...
Операционные результаты ПАО «АПРИ» за декабрь и 12 месяцев 2025 года: инфографика
Операционные результаты ПАО «АПРИ» за декабрь и 12 месяцев 2025 года: инфографика
Цифры говорят лучше слов, особенно когда они...
Обзор данных Росстата по выработке электроэнергии в РФ в ноябре 2025г. и по потреблению энергии в декабре 2025г.
Росстат представил данные по выработке электроэнергии в РФ в ноябре 2025г.: 👉выработка электроэнергии в РФ — 104,59 млрд кВт*ч. ( -2,69%...
a = -20.0+12.7;
double a;
Проблема у вас может возникнуть, только если вы начнете сравнивать b с нулем:
if(b == 0)… чего в программировании при использоваини вещественных чисел делать никогда не следует. Нужно писать, например
if abs(b) < 10e-8
Довольно странно, что Вы только сейчас узнали об этой проблеме: в школе/университете при написании циклов на Basic Вы были просто обязаны попасть на эту ошибку