Я столкнулся со странной ошибкой при попытке работать с числом с плавающей запятой. Я пытаюсь вычислить log10 (в «math.h») следующего числа:
-0.000000000000000000000000000000002584877722073 == -2.584877722073e-33
Это продолжает падать. Это действительный поплавок? Конечно, я имею дело с необработанными данными самого поплавка.
Я исследовал числа с плавающей точкой, и, насколько я понимаю, это не NaN, Inf или Денормальное число. Двоичный файл, кажется, не соответствует ничему недопустимому:
1 | 00010010 | +10101101011111001000100
Есть ли ограничения для чисел с такой точностью? Что может быть причиной проблемы?
Вы не можете вычислить логарифм отрицательного числа и ожидать реального результата. Вы должны получить ошибку домена.
Других решений пока нет …