設置日 2009/9/12(Sat)
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
どもども、いやぁ、蒸し暑くなってきましたねぇ
友昭ですww
この前、プログラミングでちょっとした物理演算をしていました(鉛直投げ上げとかっていう奴です)
んで、細かく区切って計算したかったので、0.1に初期値、増分を設定してプログラミング実行!
デバッグモードで実行し、移動距離が算出された時点でブレイクするようにしていたところ、途中でおかしな事に気が付きました。
「あれ?ずっと時間を+0.1づつしかしてないのに、1/10000000000の桁あたりに変な数字はいってるんだろう・・・?このコンパイラがいけないの?いや、これMicrosoft純正のVisual Studioだろ・・・?」
ええ、その時はあまり考えもしなかったので、どういうことなのかわかりませんでした。
ですが、今日、ハードウェアのテストの時、基数変換の問題が出てきたときに、
「ふう、0.1とかでなくてよかった。」
と、
「ん?0.1とかでなくてよかった・・・?ああ、0.1とか2進数で表せれねぇ数字だっけ?」
「ということは、あのバグは・・・なるほど」
わかる人にはわかっていただければ、
0.1なんてのを2進数で表そうとすると
(0.00011001100...)2
なんて具合に収束してくれないんで、そのせいでどっかで桁上りしたんでしょう。。。やっと気がつけた・・・
というわけでバグを直してこようと思います。0.125ぐらいがいいかなぁ?
友昭ですww
この前、プログラミングでちょっとした物理演算をしていました(鉛直投げ上げとかっていう奴です)
んで、細かく区切って計算したかったので、0.1に初期値、増分を設定してプログラミング実行!
デバッグモードで実行し、移動距離が算出された時点でブレイクするようにしていたところ、途中でおかしな事に気が付きました。
「あれ?ずっと時間を+0.1づつしかしてないのに、1/10000000000の桁あたりに変な数字はいってるんだろう・・・?このコンパイラがいけないの?いや、これMicrosoft純正のVisual Studioだろ・・・?」
ええ、その時はあまり考えもしなかったので、どういうことなのかわかりませんでした。
ですが、今日、ハードウェアのテストの時、基数変換の問題が出てきたときに、
「ふう、0.1とかでなくてよかった。」
と、
「ん?0.1とかでなくてよかった・・・?ああ、0.1とか2進数で表せれねぇ数字だっけ?」
「ということは、あのバグは・・・なるほど」
わかる人にはわかっていただければ、
0.1なんてのを2進数で表そうとすると
(0.00011001100...)2
なんて具合に収束してくれないんで、そのせいでどっかで桁上りしたんでしょう。。。やっと気がつけた・・・
というわけでバグを直してこようと思います。0.125ぐらいがいいかなぁ?
PR
この記事にコメントする
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
フリーエリア
最新記事
(12/04)
(09/19)
(05/26)
(05/26)
(05/05)
最新TB
プロフィール
HN:
芳野友昭
年齢:
31
性別:
男性
誕生日:
1993/05/28
職業:
高校生
趣味:
執筆、ゲーム、プログラミング
自己紹介:
ども、某工業高校に通う学生です。
このブログでは小説とかいろいろなことをグダグダと書いて行こうと思います。よければコメントとかして下さい。
このブログでは小説とかいろいろなことをグダグダと書いて行こうと思います。よければコメントとかして下さい。
ブログ内検索
P R
カウンター
Twitter