PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Fortran
[问题] 浮点数下的if和等于
楼主:
sinlin
(豆浆)
2012-10-19 22:45:34
do i=1,200
co(i)=-1.005d0+dfloat(i)*0.01d0
! write(*,*) co(i)
if (co(i).eq.(-0.975d0)) write(*,*) i
end do
我的程式片段如上
本来只是懒得手算,想要看一下在i=几时,会出现co=-0.975
结果if不成立,没有输出
好奇之下就列出了所有co来看
发现co的值是-0.9749999999
我以往都没注意到这种情况!
请问这样子有没有什么简单的写法可以避免这种事情发生呢
作者: charlesdc (MoOn)
0000-00-00 00:00:00
判断一个区间
作者: callmei (挨)
0000-00-00 00:00:00
因为浮点数运算有ROUNDING ERROR
作者:
wiki70170
(wiki)
0000-00-00 00:00:00
宣告为单精度REAL*4看看
楼主:
sinlin
(豆浆)
0000-00-00 00:00:00
嗯嗯,ok了,谢谢各位改宣告没帮助,我把if(co(i)-(-0.975d0).le.0.001d0)
继续阅读
[问题] IVPAG解方程组的精准度跟次方设定
zmack0905
Re: [问题] BINARY档案读写
Cypresslin
[问题] BINARY档案读写
prolog
[问题] 乱数不随机(已爬文)
tprucj
[问题] 有关.error LNK2001
zmack0905
[问题] 浮点数输出格式 Fw.d
piggees
Re: [问题] 多维阵列 VS 一维阵列
callmei
[问题] 多维阵列 VS 一维阵列
iohan
[问题] 哪里可以下载免费的fortran软件呢?
ikkldh
Re: [问题] 连续档名 + 指定档案路径
laa7352
Links
booklink
Contact Us: admin [ a t ] ucptt.com