starik Опубликовано 25 апреля, 2025 Поделиться Опубликовано 25 апреля, 2025 Я столкнулся проблемой в языке программирования lua, что при выполнении этой строки результат равен 0: print(math.fmod(2 ,2)) А когда выполняется такой цикл: for i=1, 9, 0.1 do print(math.fmod(i,2)) end то когда i достигает значение 2 он выдаёт такое странное число 8.8817841970013e-16 Я в замешательстве ( Ссылка на комментарий Поделиться на другие сайты Поделиться
Shomen Опубликовано 25 апреля, 2025 Поделиться Опубликовано 25 апреля, 2025 это проблема вычисления дробных чисел 8.8817841970013e-16 очень близко к 0 (0.00000000000000088817841970013) есть несколько варинатов как это можно исправить: 1) забить, если точность не важна 2) округлить, если точность не важна, но важно чтобы данные не были больше определеного количества знаков после запятой 3) использовать целые числа Если тебе нужна точность то присмотрить к fortran (язык используется для матиматических вычислений) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
В теме 2 сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти