【发布时间】:2012-02-03 03:06:36
【问题描述】:
我目前不得不通过创建程序需要读入的 ascii 输出文件来与旧版 Fortran 程序交互,执行一些计算,然后我必须解析二进制输出。在大多数情况下,我有这个工作,但我遇到了一个小障碍。
我遇到的问题是 Fortran 描述符。有没有一种简单的方法可以将像 E9.3 这样的描述符放入 Java 中的 DecimalFormat 对象中?
我的 DecimalFormat 仅适用于小于 1 的数字。对于小于 1 的数字,例如 0.123,它们用指数上的符号写出,如 1.230E-01。但是,对于大于 1 (12.345) 的数字,它们被写为 1.234E01 而不是 1.234E+01。据我所知,该程序期望“+”号作为指数的一部分。
我当前使用的 DecimalFormat 字符串是“#0.000E00”,如果需要,我目前正在拉一些字符串操作以在其中插入“+”(在 E 之后但在数字之前)。必须有更好的方法来做到这一点。任何帮助将不胜感激。
【问题讨论】:
-
String.format("%e", 123.456);为我返回1.234560e+02。 -
问题是总的字符串需要9个,而且只有9个字符长。本质上,您的示例编号需要为 1.235E+02,我不确定如何将其强制为一定长度。
-
查看 DecimalFormat 规范(我从未亲自使用过),它似乎相当不灵活。除了后处理之外,没有明显的技巧可以实现您想要的。
-
@K.Niemczyk 我对 Fortran 不熟悉,所以我只关注您解释的问题的一部分。我会看到一个更完整的答案。
标签: java fortran decimalformat