首页 > 解决方案 > 如何在 KDB 中舍入数字?

问题描述

看起来我可以破解floorceiling进入任意的元函数round,但有没有标准的方法:

round[3.1415;2] = 3.14

从核心功能?

编辑:这是我要解决的问题:

我有未经调整的每日股票数据,我正在尝试识别拆分并将它们过滤掉。十进制伪影使情况更加复杂(拆分可能不是完美的 2:1,因为价格具有最小刻度大小)。

在此处输入图像描述

标签: kdb

解决方案


这可以通过使用.Qf来实现,但这确实将输出作为字符串返回。

使用它,我们可以将 3.14159 舍入到小数点后 2 位,如下所示:

q) .Q.f[2;] 3.14
"3.14"
q)round:{"F"$.Q.f[y]x}
q)round[3.1415;2]
3.14

推荐阅读