提问人:Babaji 提问时间:2/23/2022 最后编辑:Ian BushBabaji 更新时间:2/24/2022 访问量:119
Fortran 中变量获取的 E-318 值的含义
Meaning of E-318 value taken by variable in Fortran
问:
我正在 Fortran 90 中执行一些计算。一个特定的变量(声明为隐式双精度)取的值类似于 。起初,我忽略了它,假设它可能只是零(变量应该取的值也是零)。但是现在我想知道 E-318 是否表示我的代码中有错误。我也在问这个问题,因为这个变量在循环中的各个点都取这样的值,有时变量也取它的值。这表明我的代码中肯定存在错误,但我有一个不同的问题。一般来说,这些变量在 Fortran 90 中可以取的最大值和最小值是多少?-1.0420437349566899E-318
NaN
答:
3赞
Eric Postpischil
2/24/2022
#1
-1.0420437349566899E-318
表示 −1.0420437349566899 • 10−318,即大约 −1 乘以 −318 的幂。“E”代表十的指数。
这是一个非常小的数字。它的幅度低于IEEE-754“双精度”浮点格式(binary64)中的最小正常数,即2−1022,约为−1.11254•10−308。该星等高于可表示的小数字,即次正常数 2−1074,约为 4.94•10−324。当结果中出现这么小的数字时,可能是因为重复乘以小于 1 的数字。例如,在设计用于产生回声的音频滤波器中,每次重复的音量都低于前一个,如果没有新的传入声音覆盖它们,则先前声音的幅度最终将达到低于正常范围。当变量未初始化或表示不同类型数据的字节被重新解释为浮点类型时,也会发生这种情况。
上一个:浮点数学坏了吗?
评论
NaN
tiny()
huge()
huge
tiny
double