if语句未生效
do i = 1,size(points)write(*,*) "i",i,points(i)%x, points(i)%y %points为自定义数据类型,其中包含双精度浮点数x,y
if ((points(i)%x.EQ.3.21132486540519)
& .and. (points(i)%y.EQ.9.21132486540519) ) then
write(*,*) "点集数量",size(points)
! write(*,*) "i",i,points(i)%x, points(i)%y
write(*,*) "范围",x_min, x_max, y_min, y_max
end if
end do
代码中有一个类型为points的数组,通过第二行的write命令,确定数组中包含 points(i)%x=3.21132486540519 points(i)%y=9.21132486540519 的情况,但是为什么第三行的判断条件没有成立,并没有输出内容。用的ivf2019.
浮点数有误差,不要做相等判断。可以用
abs(points(i)%x-3.21132486540519d0)<1.0d-5 之类的来表示。
此外,常量也有单双精度的区分。双精度常量最好写成 3.21132486540519d0
好的好的,学习了,感谢!!
页:
[1]