掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
FloatToStr(1.0) = 0.99999998430675となるのは何故でしょうか (ID:13866)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
現在、DirectX9.0bを使用し、3Dのモデルを表示するプログラムを 作成しております。 環境<OS:WindowsXPSP2+IE6SP2+Delphi7ent> ShowMessage(floattostr(1.0)); を実行すると 0.99999998430675 と表示されてしまいます。 DirectXを使用しないプログラムだと(同じパソコン上です)結果は 1 となります。 似た現象として、 NewDate,NewDate1,NewDate2,NewDate3 : TDateTime; NewDate := StrToDateTime('2005/03/31 00:00:00'); NewDate1 := NewDate + 1; NewDate2 := NewDate + 2; NewDate3 := NewDate + 3; の各値をDateTimeToStrの引数に渡すと下記の結果になります。 2005/03/31 0:00:59 2005/03/31 23:58:24 2005/04/02 0:00:12 2005/04/03 0:01:59 DirectXを使用した時、小数の扱いが変わっているみたいです。 似た現象に遭遇した方、解決への糸口、何でもかまいません。 ご教授お願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.