0

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

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

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

4

1 回答 1

2

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

于 2012-08-29T18:27:16.100 回答