防止自己遗忘:Fortran语言表达取值范围

在使用Fortran编写代码时,作者遇到了结果输出为NaN的问题,原因是运算中可能出现了除以零的情况。通过调试,作者发现if循环缺少下限设定。尝试使用`if0<x<1`无效后,作者采用了一种更直接的解决方法:`if(x<1)thenif(x>0)thena=1endifendif`,这个修正避免了NaN的输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(本篇重点就是红色的部分,其余是我闲聊)

今天用Fortran语言写代码时发现一个bug,导致结果一直输出NaN

百度后得知:NaN = Not a Number(意思是输出的结果在运算过程中可能存在除数为0的情况)

不断调试后找到了问题根源:if循环里没有设置下限

随后以为只要if 0<x<1即可,后发现该命令不起作用

(我已经快把7年前学的c语言忘完了dbq)

因为没查到正确表达(可能是我描述不准确),然后采取了最粗暴的办法

以下仅举例说明,不做特别用处 

if (x < 1) then
      if (x > 0) then     
            a=1
      end if 

end if 

确实可行,后面不输出NaN了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值