【发布时间】:2018-09-27 12:45:17
【问题描述】:
当我的程序中的某些数字变小时,我遇到了问题,因为我将它们写在一个文件中,而指数格式变得不同: 例如,数字 > 1e-100: 0.3979111076224349D-98 较小的数字: 0.2306878464709676-101(D消失)
并且由于它是由另一个程序读取的,因此这些数字无法正确读取。
目前我使用的是 3D25.16 格式 一个可能的解决方案是强制 3E25.15E3 问题是我丢失了任何数字的 1 位数字
我想避免丢失一个数字,并且我想避免在打印前的测试中失去性能。
还有其他解决办法吗?对我来说,理想的解决方案是一种在指数上打印 2 位数字并在
其他疑问是:从 3D25.16 更改为 3E25.15E3 时,将 D 更改为 E 是否会丢失精度?因为不接受3D25.15E3
谢谢
【问题讨论】:
-
3E26.15E3 怎么样
-
为什么不使用
3e26.15e3? -
请注意,您同时提出了两个不同的问题。这并不是人们应该如何就 SO 提出问题的方式。您可能会考虑提出两个不同的问题。
-
最好不要问关于
d而不是e的单独问题。但是,您可以看到 this question 对此。 -
'问题是我丢失了任何数字的 1 位数字'。要么你不太关心存储,你可以添加额外的数字,或者你非常关心空间,不应该使用 ASCII。
标签: fortran format precision digits