FORTRAN 77でformat文を使用して、数値を読み取る精度を定義しようとしています。ここでREAD文の形式と実数の丸め
は、私のコードの行です:
double precision x,y,z
open(u,FILE='points.dat',STATUS='OLD')
do 10 i=1,n
read(u,100) x,y,z
write(*,*),'check', x,y,z
enddo
100 format(3(2x,D14.2))
close(u)
私はこれらの数字読み取ろうとしました:別の形式で1.0542095e-03 -3.4176819e-02 -1.3796906e-01 をし、その結果は次のとおりです。
format(3(2x,E14.2)): check 0.0010542095 -0.034176819 -0.13796906
format(3(2x,E14.7)): check 0.0010542095 -0.034176819 -0.13796906
format(3(2x,D14.7)): check 0.0010542095 -0.034176819 -0.13796906
私は0.001054209を与えること0.001000000を与えるために、最初の行、2行目を期待しているだろうが、それはその形式の文が読み取りでは効果がありませんか、多分私はそれを正しく使用しなかったようです。誰でも私の読み込み機能のフォーマットの効果と使い方を教えてくれますか?
この質問には2つの部分がありますが、おそらく行うことができます。主な答えは、読み込みが正確に何をすべきかということです(入力値に小数点記号がある場合、その形式の小数部の幅は無視されます)。これは、正しく読み取られた実際の値の値を所定の小数点以下の桁数に切り捨てる必要があることを示す答えも求めていますか? – francescalus