价格为浮动时对订单进行排序

时间:2013-06-12 15:35:04

标签: c++ sorting floating-point trading

当价格为浮动/双打时,对价格进行排序的好方法是什么?当价格为整数时,二叉树可以正常工作,因为您可以关闭价格并获得O(log(n))。关键的浮动/双打是一个坏主意或者至少是冒险的。

1 个答案:

答案 0 :(得分:4)

首先,我建议将价格存储为整数。只需制作单位centspenceöre或您所在国家/地区较小的单位,或者甚至是主要货币的1/1000或1/10000。这将在以后节省很多头痛。

但只要您不制作if (x.price == y.price),就可以使用price作为关键字。出于排序目的,二叉树仅需要less than(或greater than)比较,这对于浮点值应该是完全安全的。值总是小于或大于某个其他值。只有当你进行计算并尝试确定值是否精确相等时,才会出现浮点问题。 [或者当您期望计算得到精确结果时,例如乘以2.46,然后除以2.46然后减去原始数字,并期望恰好为零]