顺利就好 发表于 2023-12-25 21:42:24

函数运算问题

求助,程序语句如下,其中Amm=9,Bmm=3,Cmm=6,都是整数常量
在计算循环时,当I=Amm*Bmm*Cmm,即I=162时,应该会有D=ceiling(I/o1) =6才对,但是运行结果却是7,检查了很多次,但是不知道原因,望大佬解惑

Do I=1,Amm*Bmm*Cmm
o1=Amm*Bmm    !即o1=27
D=ceiling(I/o1)   !对层数向上取整
Pref(I,H)=Pref(I,H)-densitys(I,H)*9.81*rZoneheight(1)*D
densitys(I,H)=Pref(I,H)/((rT_room_air(I,H)+273.15)*Ra+9.81*Haverage(1))
write(*,*)I,o1,H,D,Pref(I,H)
END DO
END DO
stop


风平老涡 发表于 2023-12-25 22:07:50

显示一下数值 I/o1 看看。

fcode 发表于 2023-12-26 09:50:32

数值不正确的问题,建议你学习一下单步Debug调试
http://v.fcode.cn/video-debugger.html
视频教程,应用篇《调试器的使用》这个章节

顺利就好 发表于 2024-1-10 17:17:35

fcode 发表于 2023-12-26 09:50
数值不正确的问题,建议你学习一下单步Debug调试
http://v.fcode.cn/video-debugger.html
视频教程,应用篇 ...

好的,谢谢!

布衣龙共 发表于 2024-1-10 18:09:59

浮点数有误差,你可以把 o1 定义为整数。并且去掉 ceiling 函数。
页: [1]
查看完整版本: 函数运算问题