プレイ日記
スピーカー A7GSM51L347
このプログラム通りにRUNすると、 IF 0.3~,IF 0.8~,IF 0.9~ の時に命令が効かなくなる。 これは俺だけか?それともバグか?
4そうだね
プレイ済み
返信[1]
親投稿
スピーカー A7GSM51L347
補足:画像ミスってました。本文の情報が正しいです。 問題のプログラムは下らへんのFOR~からNEXTまでの文です。
1そうだね
プレイ済み
返信[2]
親投稿
演算誤差
1そうだね
プレイ済み
返信[3]
親投稿
二進演算 循環小数 (四字熟語が言いたい人)
1そうだね
プレイ済み
返信[4]
親投稿
つばさ☆ nsm2116
プチコンの小数は完璧じゃないんだよなー。
2そうだね
プレイ済み
返信[5]
親投稿
あきと SideBurnsM
整数ならうまく動くけど、少数ではうまくいかない事があるという浮動小数点という数値表現方法で起こる問題ですね。 直る可能性は低いでしょうね。
2そうだね
プレイ済み
返信[6]
親投稿
ΖΕΧ ZEX256
実数型の変数では表現できない数値があり、実数を==で比較すると、目的の動作をしない場合があるのです。 実数型の誤差による誤動作を回避するための方法 http://ochameclub.web.fc2.com/petitcom3/lecture/floating_point_error.htm
3そうだね
プレイ済み
返信[7]
親投稿
スピーカー A7GSM51L347
ふむふむ、なるほど… ためになりましたっ
2そうだね
プレイ済み
返信[8]
親投稿
MIKI ifconfig
この問題はほとんどのコンピュータ言語で発生します。 無限の精度を持つ「実数」(数学の対象)を、有限の表現能力しかないコンピュータ処理系で扱う以上、どうあがいても不可避な問題です。 でちゃんと回避方法も考えられてて、 実数の比較の場合は、同値判定を用いず if x==y のかわりに if abs(x-y) < 0.0001 のようにある程度の誤差を許容する形で比較します。
1そうだね
プレイ済み