非常基本的 Fortran 问题。以下函数返回 NaN,我似乎无法弄清楚原因:F_diameter = 1. - (2.71828**(-1.0*((-1. / 30.)**1.4)))
我喂了 2.71... in 而不是使用 exp()
但他们都以同样的方式失败。我注意到当小数部分 (-1/30) 为负时,我只会得到 NaN。正面评价还可以。
非常感谢
最佳答案
问题是你正在取负数的根,这会给你一个复杂的答案。如果你想象一下,这会更明显,例如
(-1) ** (3/2)
这相当于
(1/sqrt(-1))**3
换句话说,您的分数指数不能对负数进行微不足道的运算。
关于math - 负指数在 Fortran 中抛出 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8314268/