当程序中某些数字变小时,我遇到了问题,因为我将它们写在文件上并且指数格式变得不同: 例如,数字> 1E-100: 0.3979111076224349D-98 较小的数字: 0.2306878464709676-101(D 消失(
而且由于它是由另一个程序读取的,因此无法正确读取这些数字。
目前我正在使用 3D25.16 格式 一个可能的解决方案是强制 3E25.15E3 问题是我丢失了任何数字的 1 位数字
我想避免丢失一个数字,并且我想避免在打印前的测试中失去性能。
还有其他解决方案吗?对我来说,理想的解决方案是一种格式,该格式以指数形式打印 2 位数字,并在 <3e-100 时更改为 100 位 其他好的解决方案是将非常小的数字转换为零的格式选项
另一个疑问是:从 3D25.16 更改为 3E25.15E3 时,将 D 更改为 E 是否会失去精度?因为不接受 3D25.15E3
谢谢
正如每个人在评论中所说(以及您在问题中(,您可以只使用E
描述符而不是D
,因此您可以指定指数部分的位数。
目前我正在使用 3D25.16 格式 一个可能的解决方案是强制 3E25.15E3 问题是我丢失了任何数字的 1 位
数字
那么,为什么不用3E26.15E3
增加输出的宽度呢?
另一个疑问是:从 3D25.16 更改为 3E25.15E3 时,将 D 更改为 E 是否会失去精度?
使用3E25.15E3
:是的,您可能会这样做(1 位数字(。3E26.15E3
:不,你没有。