アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

0.0001
5.4321
1234.5

よろしくお願いします。

A 回答 (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年前の経験)ではこの程度しか考えつきません。文字型変数でプリントします。はたしてこれで動くのかも自信がないです。悪しからず。
    • good
    • 0

0.0001


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

この回答への補足

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

補足日時:2008/12/05 10:44
    • good
    • 0

当方では、0.が抜けるようなことはありませんでした。


使用しているコンパイラ、OS、実際に試した書式を教えて下さい。

この回答への補足

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

補足日時:2008/12/03 17:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!