为什么5/10分区会产生0.00000个E+;00用Fortran?
我试图制作一个简单的程序,将5/10的值存储在一个实变量中,比如r。 输出结果为0.00000E+00。 为什么?为什么5/10分区会产生0.00000个E+;00用Fortran?,fortran,gfortran,fortran90,intel-fortran,Fortran,Gfortran,Fortran90,Intel Fortran,我试图制作一个简单的程序,将5/10的值存储在一个实变量中,比如r。 输出结果为0.00000E+00。 为什么? 如果得到正确答案,该怎么办?Fortran在将值赋给r之前先计算5/10 5/10的结果是0,因为两个操作数都是整数 只有在计算了0之后,才将其分配给r。但是因为r是一个实数,所以整数0被转换成实数0.0000,这就是您所看到的 试试5.0/10 比如说 program hello real r1 real r2 r1 = 5 / 10
如果得到正确答案,该怎么办?Fortran在将值赋给
r
之前先计算5/10
5/10
的结果是0
,因为两个操作数都是整数
只有在计算了0之后,才将其分配给r
。但是因为r
是一个实数
,所以整数0被转换成实数0.0000,这就是您所看到的
试试5.0/10
比如说
program hello
real r1
real r2
r1 = 5 / 10
r2 = 5.0 / 10
print *, r1, r2
end program hello
输出
0.00000000 0.500000000