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
gfortran默认宽度/十进制数描述符_Fortran_Gfortran_Fortran90 - Fatal编程技术网

gfortran默认宽度/十进制数描述符

gfortran默认宽度/十进制数描述符,fortran,gfortran,fortran90,Fortran,Gfortran,Fortran90,以下代码演示了对于gfortran,可以让处理器决定整数和浮点数的格式描述符的宽度: program test double precision :: x = 5.321568756 integer :: i = 53254 write(*, '(I0)') i write(*, '(F0.3)') x end program test 编译时,此代码输出 53254 5.322 是否也可以让处理器决定write语句输出的小数点数量?换句话说,要使上述程序输

以下代码演示了对于gfortran,可以让处理器决定整数和浮点数的格式描述符的宽度:

program test
    double precision :: x = 5.321568756
    integer ::  i = 53254
    write(*, '(I0)') i
    write(*, '(F0.3)') x
end program test
编译时,此代码输出

53254
5.322
是否也可以让处理器决定
write
语句输出的小数点数量?换句话说,要使上述程序输出以下内容:

53254
5.321568756

没有在格式描述符(如
”(F0.9)
中明确提供小数点的数量。类似于
”(F0(此处的默认小数点数量))”

您可以使用
g0
编辑描述符,如:


program test
  double precision :: x = 5.321568756
  integer ::  i = 53254
  write(*, '(I0)') i
  write(*, '(F0.3)') x
  write(*, '(G0)') x
end program test

(G和F编辑描述符之间的区别在于,当值变得足够大/足够小时,G编辑描述符将切换为指数表示法。但通常这是您想要的)

您可以使用
g0
编辑描述符,如:


program test
  double precision :: x = 5.321568756
  integer ::  i = 53254
  write(*, '(I0)') i
  write(*, '(F0.3)') x
  write(*, '(G0)') x
end program test

(G和F编辑描述符之间的区别在于,当值变得足够大/足够小时,G编辑描述符将切换为指数表示法。但通常这是您想要的)

您所说的“此处默认小数点数”是什么意思。回想一下,
x
可能不完全是5.321568756(而且
5.321568756
是默认的真正非单精度)。我已经从文本中删除了关于
.f90
和自由格式的部分(但留下了f90标记)。这些似乎与我无关,但如果你真的认为它们与我无关,请加回去。如果你使用列表定向I/O(*格式),编译器将选择其默认表示形式。你所说的“此处默认小数点数”是什么意思。回想一下,
x
可能不完全是5.321568756(而且
5.321568756
是默认的真正非单精度)。我已经从文本中删除了关于
.f90
和自由格式的部分(但留下了f90标记)。这些似乎与我无关,但如果你真的认为它们与我无关,请加上它们。如果你使用列表定向I/O(*格式),编译器将选择它的默认表示形式。