这个应该不是大小比较的问题,因为 2680 > 2679.999999999999545 的结果是 true。
应该是 GUI 显示的数据精度的问题。
GUI 默认的应该是显示小数点后 4 位。所以,实际计算获得的因子值可能是 2679.99999 ,在 GUI 显示就是 2680。
解决方案:
首先,可以通过调整 GUI 显示的小数位数,比如调成 16,来查看实际的因子值,看是否是上述原因导致。
如果是上述问题,又需要 factorValue 的数据成为 2680.0,则可以通过 round 函数控制数据的小数位数。
// 构造数据 HTSCSecurityID = take(`600000.SH, 6) MDDate = take(2022.04.01, 6) MDTime = 13:00:00.000 + 1..6 * 3000 factorValue = 0 0 0 80329.0602 751 2679.99999 resultTable = table(HTSCSecurityID, MDDate, MDTime, factorValue) // 筛选 > 2679.999999999999545 数据 select * from resultTable where round(factorValue, 4) > 2679.999999999999545