おいふぉりーのぶろぐ

きっと趣味のブログに違いないです!!

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

浮動小数点演算のエラー処理ってややこしいね

例えば、 0 除算のコードを実行してみると
#include <iostream>
using namespace std;

int main()
{
  double x = 1;
  double y = 0;
  x = x / y;
  cout << x << endl;
  return 0;
}
Borland C++ Builder 5.0 では "EZeroDivide クラスの例外を生成しました。"となるけど。
g++ 3.4.4 (cygming special) だと、"Inf" って実行結果となる。
vc8(Visual C++ 2005 Express Edition) だと "1.#INF" って実行結果。
う~ん。色々難しいね。まあ、 0 除算の時なんかは当然割る前に場合分けすりゃいいんだけど。あと、算術関数だと、 exp() 関数とかは呼び出し前に、オーバーフローしない引数の範囲かどうか確認できるけど、 pow() 関数とかはそういうわけにもいかないんだよね。今は、vc8 使ってるので vc 独自の _fpclass() 関数を使って演算結果をチェックしてるんだけど、あんまスマートじゃない気がする。
  1. 2006/11/13(月) 01:29:08|
  2. ソフトウェア開発
  3. | トラックバック:0
  4. | コメント:0
<<ミニテスト | ホーム | 今日もちょっぴりプログラミング>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://tm86eublog.blog42.fc2.com/tb.php/166-cac62337
この記事にトラックバックする(FC2ブログユーザー)

来客数

プロフィール

Euphorie

Author:Euphorie
"おいふぉりー"って呼んでくださいな☆
ハードウェアとかソフトウェアとかの開発に興味があったり。。。
連絡先は上の画像。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。