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

use*_*148 0 c++ sorting floating-point trading

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

Mat*_*son 5

首先,我建议将价格存储为整数。只需将单位设为centspence\xc3\xb6re您所在国家/地区的任何较小单位 - 甚至是主要货币的 1/1000 或 1/10000。这将为以后省去很多麻烦。

\n\n

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

\n