Задать вопрос
resolut1123
@resolut1123
Студент

В типе double 0 отображается как -2.77556e-16, как исправить?

Пишу программу для вывода функции с разным интервалом и когда по условию x = 0 то вся функция равна 0, но выводит результат x= -2.77556e-16 y = -2.77556e-16
  • Вопрос задан
  • 342 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
Kalombyr
@Kalombyr
Ну, всё, впринципе, правильно: 0,0000000000277556.
Либо делайте неточное сравнение.
Вам бы про тип double почитать, да и вообще про числа с плавающей точкой: https://habr.com/ru/post/337260/
Если через printf выводите, то можно задать точность, с какой выводить: printf("%.2f", 1.2222);
Ответ написан
Комментировать
bitniks
@bitniks
Go/PHP/Symfony developer
Числа с плавающей точкой имеют ограниченную точность, поэтому обычными средствами их сравнивать нельзя. Чтобы сравнить числа с плавающей точкой, нужно взять модуль разности этих чисел и проверить, что он меньше, чем верхняя граница округления
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы