我有一个场景,我声明一个变量 real*8 并读取一个值
0.1234123412341234
存储在文件中。
当我尝试在 Linux 上将其读取为变量并显示值时,它会打印
0.12341234123412
而当我为 AIX 运行相同的代码时,它会打印值
0.12341234123412370
为什么两个平台为相同的代码打印不同的值?有没有可能在不使用格式说明符的情况下克服这个问题?
附言
AIX编译器是xlf
Linux 编译器是 ifort
最佳答案
我假设您正在使用列表定向 IO,write (X, *)
。虽然这种类型的 IO 很方便,但标准并未完全指定输出。如果您希望您的输出在编译器和平台之间极其相似,您应该使用一种格式。 (由于使用了有限精度算术,您的结果可能仍有细微差异。)
关于linux - AIX 和 Linux 上的 Fortran 输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19225565/