1

Fortran 77 プログラムから大量 (>2000 万) の float 値をテキスト ファイルに出力する必要があります。出力ファイルをできるだけ小さくしたいと思います。したがって、バイナリに頼らずに、フロートをコンパクトな方法で出力したいと思います。

私は必要な精度 (通常は小数点以下 2 桁) を知っているので、CI ではprintf("%.2f %.2f", val1, val2);Is something like this possible in Fortran 77?を使用します。私が見つけたのは、フィールド幅を明示的に設定する必要があるということだけでした (のようにformat (f8.2,x,f8.2))。出力数値の範囲が事前にわからない場合、これは多くのスペースを無駄にします。

Fortran 77 でそれができない場合、新しい Fortran 標準はこれを行う方法を提供していますか?

4

3 に答える 3

3

Fortran 2008 標準では、出力が可能な限り最小のフィールド幅であるなどの編集記述子を使用できます。f0.2これは、数値の整数部分とそれに続く小数点と 2 つの小数桁を書き込みます。これは Fortran 90 以降、おそらくそれよりも前から言語標準の一部になっていると思います。

于 2013-06-20T10:52:10.170 に答える
0

これは衒学的で役に立たないと思われるかもしれませんが、聞いてください。あなたは悪い科学をしているように聞こえます。計測器が 1000.00 から 0.01 までの数値を出力している場合、その計測器はおそらく 100 分の 1 の精度しかありません。したがって、数値 9894.36 は 9900 に丸められる必要があります (小数点なし)。他のすべての数字は重要ではありません。それが関連性があり、役立つのはなぜですか?9894.36 を格納している場合、ストレージ スペースを無駄にしているからです。したがって、科学表記法で出力する g 編集記述子を使用するのが答えです。次に、すべての数字が同じスペースを占有します。

于 2013-08-09T23:24:35.333 に答える