我正在尝试阅读以下内容:
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
为什么我有这么多小数位,为什么最终值不匹配? 谢谢!
答案 0 :(得分:2)
看起来您正在正确阅读这些值。对于输出的列表定向IO,编译器通常将使用数字类型的最大位数。并非所有十进制值都具有精确的有限精度二进制等价物 - 这可能就是您所看到的第三个数字。如果对输出使用格式语句,指定较少的数字,则该值将四舍五入并显示正确。