linux - AIX 和 Linux 上的 Fortran 输出不正确

标签 linux fortran precision aix intel-fortran

我有一个场景,我声明一个变量 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/

相关文章:

linux - 删除 |来自 Linux 命令

c++ - 如何在 C++ 中创建两个从单个父进程并行执行的子进程?

Fortran:最大和最小的整数

c++ - 在 C++ 中处理存储在 double 中的大整数时如何避免舍入/精度错误?

linux - 我的虚拟服务器 Linux 无法连接到互联网

Android USB 配件与 Linux 系统通信

linux - 在 Fortran 程序意外结束时刷新文件

fortran - Fortran中的CPP预处理语句可以缩进吗?

matlab - (Matlab)奇怪的精度损失,同时将复杂矩阵分配给局部变量

python - 获取纳秒级精度的文件修改时间