Fortran
■ このスレッドは過去ログ倉庫に格納されています
0108のと
NGNG>というか、値が1.0D-100とか1.0D-307(w とかいうのはもうゼロと同じ
>なのであって、これと0.0D0を区別して、前者の場合は正しく動くが、後者
>の場合は正しく動かないというのは、プログラムのロジックに問題があると
>思うぞ。
すみません、理解力がないためか、前者と後者とは何を指すのでしょうか?
もし1.0D-100とか1.0D-307のことを指しているのなら、どっちもちゃんと
動きますよ。動かないのは0.0D0としたときだけです。
何を言いたいのでしょうか?
>誤差の問題に関して脳天気なプログラムと推察する。この観点から
>プログラム全体を見直すべし。
言われたとおりそうします。
しかし、
>DABS(A).LT.DEPS(DEPSはDATA文で1.0D-10などと
>定義しておく)という風に書くのはFORTRANではごく普通のやり方。
とありますが、このごくふつうのやり方ではDEPSより小さくて0.0D0より
大きい値をIF文に入れることはできないですよね。
でも本当はそうしたいわけなので、根本的解決になっていないような気が
するのですが…。
とんちんかんなことを言っていたらごめんなさい。
■ このスレッドは過去ログ倉庫に格納されています