掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
異なる実数型の計算エラーを回避する方法 (ID:5251)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ある計算で、’遊動小数点数のオーバーフロー’のエラーが発生したのですが 原因は、限りなく0に近い数値が、doubleとsingleを混同した計算式に入った為でした。 実証する為に簡単なコードを作ってみました procedure TForm1.Button1Click(Sender: TObject); var x:double; y:double; xy:single; begin x:=minsingle; y:=mindouble; xy:=x/y; //<-ここでエラー showmessage(floattostr(xy)); end; xyをdouble型にしたり事前にxやyの値を検査して0とすれば回避できるのですが single型変数に、その範囲より小さい値が代入されたら0としてくれれば、問題ないと思います。 その様に処理させる事は出来ないのでしょうか? (プロジェクトオプションの実行時エラーのオーバーフローチェックを外してみましたが これとは別のようでした。)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.