こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Fortranのフォーマット

Fortranのフォーマットで、下記のように表示したい場合どうしたらよいのでしょうか?桁落ちしてもかまいません。
実数型(f)で表示した場合、0.が抜けてしまいます。
指数表示はしません。

0.0001
5.4321
1234.5

よろしくお願いします。

投稿日時 - 2008-12-02 18:41:19

QNo.4524538

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

一番上の場合だけで記述すると、PRINTしたい変数をABCとして、

CHARACTER*7 CH7
REAL ABC
WRITE(CH7,F7.4)ABC
IF(ABC.LT.0.0) THEN
CH7(1:2)='-0'
ELSE
CH7(1:2)=' 0'
ENDIF
WRITE(6,100) CH7
100 FORMAT(1X,A7)

たかが、'0'をつけるのにこんな大袈裟なと思いますが、私のプログラミング力(20年前の経験)ではこの程度しか考えつきません。文字型変数でプリントします。はたしてこれで動くのかも自信がないです。悪しからず。

投稿日時 - 2008-12-31 10:24:08

ANo.2

0.0001
5.4321
1234.5
であれば
FORMAT(1X,F7.4/1X,F7.4/1X,F7.1)
でいいと思います。
行の先頭の「1X」は改行制御のスペースで
「1H_」(Hの後は半角スペース、表示できないのでアンダーバーで代用)と同じです。

投稿日時 - 2008-12-03 19:08:39

補足

ありがとうございます。
やはり0が抜けてしまいます。

投稿日時 - 2008-12-05 10:44:36

ANo.1

当方では、0.が抜けるようなことはありませんでした。
使用しているコンパイラ、OS、実際に試した書式を教えて下さい。

投稿日時 - 2008-12-03 13:44:00

補足

Microsoft developer studio, Fortran Power station 4.0
です。
例えば
-0.1234の時、
-.1234と表示されます。

投稿日時 - 2008-12-03 17:52:59

あなたにオススメの質問