くだすれFORTRAN(超初心者用)at TECH
くだすれFORTRAN(超初心者用) - 暇つぶし2ch673:670
06/07/16 00:28:13
>>671
漏れの書き方が誤解を招いたらしい。すまんこ。

数直線のうちFORTRANであらわされるのは、0を中心として正負にほぼ同じだけの
範囲の中の、有限個の有理数だけである。数直線の上に、定規の目のように切った点が
あって、定規の目に挟まれた部分は近くの目で代表することになる。

(浮動小数点のばあい、この定規の目は体育で使う巻尺のように、0の近傍は細かく
区切ってあるが、遠くへ行くほど荒く区切るようになっている。)

コンパイラにも依存するのだが、基本的には単精度や倍精度の浮動小数点は、
2の(負を含む)べき乗の和であらわされるような有理数になっている。
このため、10進表記で書いた有限小数が、かならずしも数直線の上に切った目に
一致するとは限らない。

つまり
1.5=1+0.5=2^0+2^-1
0.75=0.5+0.25=2^-1+2^-2
これらの数は、きっかり割り切れる(すなわち、定規の目の上にのっている)

ところが
0.8=0.5+0.25+0.0625+・・・・=2^-1+2^-2+2^-4+・・・・・
となって、数直線の上に切った目の上に載っていない。
つまり、近くの別の数に四捨五入されている。
>>672のように、FORMATで小数点いかの数を長く出すと、以下のようになる。
-16.7999992370605 -6.80000019073486 T
-16.8000000000000 -6.80000000000000 F
-16.800000000000000710542735760100 -6.799999999999999822364316059975
つまり、倍精度の-16.8は、実際は-16.800000000000000710542735760100・・・・・・
という数に四捨五入されている。-6.8も同様。
(ただし、有効桁からすれば、*フォーマットで出力される分しか制度が無い。
つまり*フォーマットで出力される数の最後の桁程度の範囲で四捨五入がされている。)


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch