Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么5/10分区会产生0.00000个E+;00用Fortran?_Fortran_Gfortran_Fortran90_Intel Fortran - Fatal编程技术网

为什么5/10分区会产生0.00000个E+;00用Fortran?

为什么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

我试图制作一个简单的程序,将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
      r2 = 5.0 / 10
      print *, r1, r2
   end program hello
输出

   0.00000000      0.500000000