掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
丸め誤差2 (ID:115243)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> X = FIX(CCur(A / B * C))と直してよっしゃ!などとぬか喜びしていたら それだと意味がありませんよ。 「算術演算子」について、ヘルプで調べてみてください。 「/ 演算子」は、2 つの数値の商を計算し、結果を『浮動小数点数で』 返しますので、単に Currency型 / Currency型だと、やはり誤差が出ます。 (ただし、10 進型を渡したときは、浮動小数点にはなりませんけれどね) > また、通貨型は小数4桁ですよね? そうです。4桁固定です。 > 割り算と掛け算、小数も出てくる演算がしたい! で。その精度はどこまで必要なのでしょうか? まさか、 A = 10 / 3 B = A * 3 の時に、B が 10 になって欲しい、という事でしょうか? 桁数を無限に保持する事はできませんから、精度を上げたいのであれば、 データを「分数」にて計算するようなクラスを自作されては如何でしょう。 データを小数として保持するのではなく、分子と分母に分けて 整数として管理するようにしておけば、四則演算時にも、 「整数同士の掛け算」として扱えますから、誤差を最小限にできますよね。 # 手続きが複雑になる分、処理速度は多少犠牲になりますが、 # 分数計算のロジック自体は、「算数」の知識さえあれば組めるでしょうし。 そこまでの精度は必要ない、という事であれば、どこまでの精度を 求めているのか、具体的な仕様部分を教えてください。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.