価格がフロート/ダブルの場合、価格でオーダーブックをソートする良い方法は何ですか? 価格をキーオフして O(log(n)) を追加できるため、価格が整数の場合、二分木は正常に機能します。フロート/ダブルをキーオフするのは悪い考えであるか、少なくともリスクがあります。
質問する
299 次
1 に答える
4
まず、価格を整数として保存することをお勧めします。単位cents
を 、pence
、öre
またはあなたの国のより小さい単位にするだけです。これにより、後で多くの頭痛が軽減されます。
しかし、 を作成しない限り、キーとしてif (x.price == y.price)
使用しても問題ありません。price
ソートの目的で、二分木はless than
(またはgreater than
) 比較のみを必要とし、これは浮動小数点値に対して完全に安全である必要があります。値は常に、他の値よりも小さいか大きいかのいずれかです。計算を行い、値が正確に等しいかどうかを判断しようとする場合にのみ、浮動小数点で問題が発生します。[または、2.46 を掛けてから 2.46 で割り、元の数値を引いて、正確にゼロを期待するなど、計算から正確な結果を期待する場合]
于 2013-06-12T15:43:58.647 に答える