« 事なきを得そう | メイン | 快特青物横丁・平和島臨時停車 »
2006年02月14日
計算誤差 |
![doodle@Google[4] Luge](http://blog.odorokutamegoro.com/archives/olympics0604s.gif)
出陣。新機能のノンデグレード検証。機械的にコンペアしたところ、45000件中6200件もの不一致があった。 不一致分は目視で確認。結局全て旧バージョンの不具合の改善によるものとわかり、今回の改修でデグレードは発生していないと判断できそうだ。
一方で別途妙な縦線が描画される既存問題(新旧両方のバージョンで発生)も判明。 調査したところ、計算誤差によるものとわかった。 具体的には以下の計算結果が315とならずに314となってしまう。
(unsigned int)(double)450 / 2.0 / (double)(5.0/7.0)
分数表現して約分すると、3150/10となり、すなわち315になるのだが、5/7が0.7142857...と割り切れず、さらに小数を2進数で扱うと必ずといっていいほど桁落ち、計算誤差がでてしまい、unsigned intにキャストする直前の値は314.99987...と、315ではなくなってしまう。 uintにキャストすると、314となってしまった。このために不具合が生じた。 問題が露呈していなかっただけで、開発初期から潜在していたようだ。
La Chocolat.
え?チョコ? あるわけないじゃん。 誰にもの聞いてんだよ
#甘いものは得意ではないので結構です。
【他の年の本日の日誌】
2008:
2008:
会計のプロに学ぶ 午前中会社にてZB案件。午後から法人会で決算申告の説明会に参加。内容は先日まで受講した申告書の書き方に類似したもので、わしら的にはあまりためにならなかった。 講
サテライトオフィス2 本日も会社にてZB案件 PHPモジュールの新規関数実装。疎通試験を行える状態にはなったが、通信不能のようだ。 専門家に調査してもらい、穴をあけてもらった。おかげで
2007:てげ大会 出陣。M案件ブン回し完了。105案件落ち穂拾い&マニュアル更新。V案件打ち合わせ参席。 夜S開発部新年会。当初1月下旬開催予定だったが諸事情で今週にずれ込んだ次第。0次会はホワイト隊員(仮名)と久々のTOWERSにてヒューガルデンホワイト...
2005:10日ぶりの出社 10日ぶりに出社。咳はまだ出るので、メンバへの影響を考えてマスクを着用。風邪がはやっているようだ。担当部長もマスクをしていた。 たまっていた宿題をやっつける。 新PHP関数(PHPモジュール)+α。 チョコをもらった。うれしい誤算であった...
2004:謎の肩こり 久々の週末在宅。 今朝より謎の肩凝り発生。寝違えたような痛みである。参ったな。PHP掲示板の背景画像のアップロード機能の実装、メンバ制機能のテストなどを行う。 ...
2003:低位株急騰 昨夜はいびきをグーピーかいていたらしい。疲れているのだろうか。そういえば夜更かししてしまった。体調を崩さないためにも、もう少し早く就寝しないといけないようだ。 本日も出社で3連闘。本日もドキュメント整理。wordによる編集で困難はなかった。...
2002:さらば札幌、こんにちは沖縄 起きると雪が降っていた。下界は真っ白である。シェラトンの朝食を軽めに済ませ、8時過ぎにチェックアウト。ちなみに今回の宿泊費は7000円である。 新千歳空港につき、土産を物色後、9時速攻で空港内郵便局にてまず貯金。その後サクララウンジでくつろ...
投稿者 onsenfan [ プログラミング ] : 2006年02月14日 23:32
この記事が役に立った/おもしろいと思ったら、ワンクリックで応援お願いします
トラックバック
このエントリーのトラックバックURL:
http://blog.odorokutamegoro.com/cgi-bin/mt/mt-tb.cgi/834_0491371701926