Попытка найти наименьшее положительное число для float, double, long double. Работает для двойных и длинных двойных значC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Попытка найти наименьшее положительное число для float, double, long double. Работает для двойных и длинных двойных знач

Сообщение Anonymous »


Я пытаюсь найти наибольшее и наименьшее число для каждого типа данных (float, double и long double). Я использую цикл while и сравниваю каждое значение с бесконечностью (для самого большого числа) и 0 (для наименьшего). Затем он печатает найденные значения. Он дает мне правильные значения для double и long double, а также самое большое число типа float.

Однако для наименьшего числа с плавающей запятой он печатает 0. Когда я изменяю программу, чтобы она отображала каждое значение в цикле, правильное значение - предпоследнее, но после этого по какой-то причине цикл повторяется еще раз, говорит, что 0 > 0 и печатает 0 как наименьшее значение.

Я не понимаю, почему это происходит? Даже если последнее значение было настолько маленьким, что округлялось до 0, почему тогда он решает, что 0 > 0, и позволяет циклу повториться в последний раз?

Вот программа:

#include #include использование пространства имен std; интервал основной() { плавающий big_f = 1, small_f = 1; двойной big_d = 1, small_d = 1; длинный двойной big_ld = 1, small_ld = 1; while(!(isinf(big_f*2))) { большой_ф *= 2; } while((small_f*0.5)>0 и !((small_f*0.5)==0)) { small_f *= 0,5; } cout
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»