人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

C・C++の浮動小数点演算誤差に関するお薦め参考書
C・C++において、doubleをint32に格納する際に丸めを考慮しなければならない、負数かどうかの判断に単純に0と比較するだけでは不十分な事があるなどの、浮動小数点の演算誤差の扱いに自信が持てずにいます。
日本語もしくは英語で学習するのに良い書籍を紹介して頂けませんでしょうか。

検索していると1.0e-7がマジックワードの様に出てきますが、こういった数字の数学・コンピューターサイエンス的な背景も学びたいと思っています。

できれば「こうすればOK」というTips本だけではなく、どういう事を考慮せねばならず、このやり方をするとなぜOKになるのか、と言う事が自分で考えられるようになる書籍を紹介して頂けると嬉しいです。

よろしくお願いします。

●質問者: kyo_bracer
●カテゴリ:学習・教育
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●300ポイント ベストアンサー

https://docs.oracle.com/cd/E19422-01/819-3693/819-3693.pdf
Sun の "Numerical Computation Guide" という文書です。

まずは、2.2.3 Double Format の確認辺りから、初めてはいかがでしょうか。
負の値かどうかを正確に判定するなら、負号ビットで判定します。
フォーマット上は、+0.0 と -0.0 があります。

もうちょっと突っ込んだところは、APPENDIX D の
What Every Computer Scientist Should Know About Floating-Point Arithmetic を読むと良いと思います。

検索していると1.0e-7がマジックワードの様に出てきますが

想像ですけど、Single Format (c で言うところの float) では仮数部が 23bit です。
十進数にすると八桁にちょっと届きません。
そんなところの名残なんじゃないかと思います(全くの想像です)。


kyo_bracerさんのコメント
ありがとうございました。 早速年末の時間を使って読ませて頂きました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ