Небольшое непонимание в языке 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:
👌 Время вспомнить о забытом активе
С начала года российский рынок акций демонстрирует неэластичность к изменению ключевых факторов для оценки.
Индекс Мосбиржи почти не...
Обновление кредитных рейтингов в ВДО и розничных облигациях (ПАО «ГК «САМОЛЕТ» присвоен прогноз "Стабильный", ООО МФК "ВЭББАНКИР" подтвердил ruBB, ООО «СибАвтоТранс» подтвердил BB|ru|)
🔴ПАО «ЕвроТранс» Эксперт РА понизил рейтинг кредитоспособности до уровня ruC, изменил прогноз на развивающийся и продлил статус «под...
Дублирование портфеля в OsEngine: настройка копитрейдинга для Т-Инвестиций
В модуль копитрейдинга OsEngine был добавлен функционал дублирования позиций в портфеле в другой портфель. Копирование позиций, как и раньше,...
ЛУКОЙЛ: капитал за год упал на 3 триллиона рублей - списали иностранные активы, но все ли так плохо? Ушла эпоха, разбираемся вместе
ЛУКОЙЛ отчитался по МСФО — долгожданный отчет, все ждали сюрприза после SDN санкций (будут ли списывать активы и увидим ли убыток)
Увидели!...
a = -20.0+12.7;
double a;
Проблема у вас может возникнуть, только если вы начнете сравнивать b с нулем:
if(b == 0)… чего в программировании при использоваини вещественных чисел делать никогда не следует. Нужно писать, например
if abs(b) < 10e-8
Довольно странно, что Вы только сейчас узнали об этой проблеме: в школе/университете при написании циклов на Basic Вы были просто обязаны попасть на эту ошибку