我一直在尝试将 Fortran 用于我的研究项目,使用最新版本的 GNU Fortran 编译器 (gfortran),但我在处理实数的方式上遇到了一些问题。如果您有例如代码:
program test
implicit none
real :: y = 23.234, z
z = y * 100000
write(*,*) y, z
end program
你会得到输出:
23.23999 2323400.0
我觉得这真的很奇怪。有人能告诉我这里到底发生了什么吗?看着 z 我可以看到 y 确实保留了它的精度,所以对于我认为不应该成为问题的计算。但是为什么 y 的输出与我指定的值不完全相同,我该怎么做才能使其完全相同?