我在尝试处理 float 时遇到了一个奇怪的错误。我正在尝试计算以下数字的 log10(在“math.h”中):
-0.000000000000000000000000000000002584877722073 == -2.584877722073e-33
它一直在崩溃。这是一个有效的 float 吗?当然,我正在处理处理 float 本身的原始数据。
我研究过 float ,根据我的理解,这不是 NaN、Inf 或非正规数。二进制文件似乎不匹配任何无效内容:
1 | 00010010 | 10101101011111001000100
这种精度的数字有限制吗?可能导致问题的原因是什么?
最佳答案
您无法计算负数的对数并期望获得真实结果。您应该遇到域错误。
关于c++ - 将 log10() 用于 float 时出错 -2.584877722073e-33,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20649004/