@Chipu

Double не выводит 0, как исправить?

74b8ffc5cfb14e5eb833cd580717c066.jpg
Вот так выглядит 0 ( 1.58871e-10)
  • Вопрос задан
  • 1858 просмотров
Пригласить эксперта
Ответы на вопрос 4
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А с чего вы взяли, что это ноль? Это именно 1.58871*10-10
Арифметические операции с вещественными числами на компьютере выполняются с определённой погрешностью, она именно так и проявляется.
Ответ написан
@evgeniy_lm
Никак. Для вещественных чисел значения 0 не существует.
Для работы с вещественными числами необходимо ввести понятие погрешности. тогда
e = 0.0000001;
........................
if Abs(A - B) < e then ............
Ответ написан
@Chipu Автор вопроса
69086aa132764b609df0166b4e0fafc2.jpg
Вот сам код, как тогда можно его исправить?
Ответ написан
x67
@x67
это норма. Тут объяснили, почему так. Только никто не удосужился посоветовать самое простое решение:
Используйте форматированный вывод, например так:
printf("%.4lf",d);  //%.Klf - K - число символов после точки, в данном случае 4

для cout тоже есть форматированный вывод, если принтф не устраивает
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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