Fortran FORMAT声明

时间:2012-08-29 18:10:42

标签: format fortran

我正在尝试阅读以下内容:

  

110134458.602 7 20957861.900

我的格式行目前如下:

READ(7,110,END=999) L1,C1,D1
write(*,*) L1,C1,D1
110 FORMAT(F14.3,1x,F1.0,2x,F14.3)

然而,我收到的输出是:

  

110134458.60200000 7.0000000000000000 20957861.899999999

为什么我有这么多小数位,为什么最终值不匹配? 谢谢!

1 个答案:

答案 0 :(得分:2)

看起来您正在正确阅读这些值。对于输出的列表定向IO,编译器通常将使用数字类型的最大位数。并非所有十进制值都具有精确的有限精度二进制等价物 - 这可能就是您所看到的第三个数字。如果对输出使用格式语句,指定较少的数字,则该值将四舍五入并显示正确。