当价格浮动/翻倍时,有什么好方法可以按价格对订单簿进行排序?当价格为整数时,二叉树可以正常工作,因为您可以关闭价格并获得 O(log(n)) 加法。关闭浮动/双打是一个坏主意,或者至少有风险。
问问题
299 次
1 回答
4
首先,我建议将价格存储为整数。只需制作单位cents
,pence
或öre
您所在国家/地区的任何较小单位 - 甚至是主要货币的 1/1000 或 1/10000。这将在以后省去很多麻烦。
但只要你不制作,作为钥匙if (x.price == y.price)
使用是完全可以的。price
出于排序目的,二叉树只需要less than
(或greater than
)比较,这对于浮点值应该是完全安全的。一个值总是小于或大于某个其他值。只有当您进行计算并尝试确定该值是否精确相等时,您才会遇到浮点问题。[或者当您期望从计算中得到精确结果时,例如乘以 2.46,然后除以 2.46,然后减去原始数字,并期望正好为零]
于 2013-06-12T15:43:58.647 回答