掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
小数点以下切捨てについて (ID:22405)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
返信ありがとうございます。 ママんさんの方法で切り捨てを行うと、誤差が発生します。 例えば、 var i:Integer; i64,Int64; d1, d2, D3, d4: double; begin d1 := 10.2; d2 := 100; D3 := D1 * d2 / 100; i64:= Trunc(D3); ShowMessage( IntToStr(i64)); だと、1020ではなく1019となってしまいます。 実際にこちらで、行っている数値演算なのですが、 UsD1 := 0.000000083333; UsD2 := 1.000000333332; UsD4 := UsD2 - 1; UsD5 := 0.000000083333 / UsD4; ShowMessage(FormatFloat('',UsD5)); → 0.25 UsD6 := 1; UsD1 := 0.000000083333; UsD4 := 0.000000333332; UsD5 := 0.000000083333 / UsD4; ShowMessage(FormatFloat('',UsD5)); → 0.24999999999999 このような状態を回避するにはどうすればよいのでしょうか。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.