Ошибка использования log10 () для числа с плавающей точкой -2.584877722073e-33

Я столкнулся со странной ошибкой при попытке работать с числом с плавающей запятой. Я пытаюсь вычислить log10 (в «math.h») следующего числа:

-0.000000000000000000000000000000002584877722073 == -2.584877722073e-33

Это продолжает падать. Это действительный поплавок? Конечно, я имею дело с необработанными данными самого поплавка.

Я исследовал числа с плавающей точкой, и, насколько я понимаю, это не NaN, Inf или Денормальное число. Двоичный файл, кажется, не соответствует ничему недопустимому:

1 | 00010010 | +10101101011111001000100

Есть ли ограничения для чисел с такой точностью? Что может быть причиной проблемы?

1

Решение

Вы не можете вычислить логарифм отрицательного числа и ожидать реального результата. Вы должны получить ошибку домена.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]