- - PR -
[基礎]固定小数と浮動小数について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-02-13 16:01
NAL-6295です。
初期値0.0001に0.0001を1万回足しているので1を超えます。 | ||||
|
投稿日時: 2004-02-13 16:13
ついでにjavaでもチャレンジ^^
double x = 0; for (int i = 0; i < 10000; i++) { x = x + 0.0001; } System.out.println(x); 0.9999999999999062 #桁マチガエテマシタ(汗 #二回目…。 [ メッセージ編集済み 編集者: TomScissors 編集日時 2004-02-13 16:20 ] | ||||
|
投稿日時: 2004-02-13 16:15
ぢゃん♪さんdecimalの例題ありがとうございました。
いろいろな言語での例が出ているので、C++(VC++)でもやってみました。 double dX; int i; dX = 0; for (i=0; i<10000; i++) { dX = dX + 0.0001; } 0.99999999999991 | ||||
|
投稿日時: 2004-02-13 16:44
単なる所感です。
私も色々試してみました。 そして、新人の頃を思い出しました.... こう言う基本的な事って、とっても面白い! | ||||
|
投稿日時: 2004-02-13 16:53
ども、ほむらです。
------ NAL-6295氏へ >初期値0.0001に0.0001を1万回足しているので1を超えます。 見直したときに気が付きました。。。。 結果として 0.999999999999906に 0.0001を足しているはずなのに 後一回足す(=10001回)と1.00009999999991 になります。 これがの誤差というやつですかねー 誤差といえば浮動小数点演算の場合、 '演算する二つの桁数の差にも注意しなければならない'ということがありましたね。 どんなものか忘れてしまいましたけど。。。 重要事項だった気がする^^;;;; | ||||
|
投稿日時: 2004-02-13 16:56
るぱんです。
ごめん。Microsoft。君は悪くなかった。 僕が間違っていたよ。許してくれ。(謎照笑) さて、皆さんにお伺いさせて頂きます。 新人に説明する際にどの様に説明するでしょうか? 1.固定小数点とは? 2.浮動小数点とは? 3.その違い、使い方について 宜しくお願いします。 | ||||
|
投稿日時: 2004-02-13 17:02
桁数の大きい数と桁数の小さい数を加算した場合、 桁数の小さい数が無視される現象です。 これは、浮動小数の仮数部のバイト数によって決まります。 でも、小数の近似値表示の問題に比べれば、屁では無いと 今は、思います... | ||||
|
投稿日時: 2004-02-13 17:12
NAL-6295です。 1と2は真実をそのまま伝えれば良いかと思います。 3は1と2の説明をした時点で達成されるものと考えます。 |