我有一个表达式,用于通过在两个值之间进行插值来估计百分位数。
windowMin + (currentPercentile - lastPercentile) * (windowMax - windowMin) / (percentile - lastPercentile)
这给了我非常好的实际结果。但是,在我的单元测试中,我无法断言事情是否正常工作,因为我一直得到显着的舍入错误。
在三个测试用例中,我尝试获取第 40 、第50和第60百分位数,从而得出以下计算结果:
1 + (0.4 - 0.3333333333333333) * (2 - 1) / (0.6666666666666666 - 0.3333333333333333)
1 + (0.5 - 0.3333333333333333) * (2 - 1) / (0.6666666666666666 - 0.3333333333333333)
1 + (0.6 - 0.3333333333333333) * (2 - 1) / (0.6666666666666666 - 0.3333333333333333)
这产生:
{
"0.4": 1.2000000000000002,
"0.5": 1.5,
"0.6": 1.8
}
这使我的断言失败,它正在寻找1.2
第 40个百分位数。
有没有办法重组这个表达式以提高所有情况下的准确性?如果没有,是否有一种简单的方法可以使用 chai 断言解决此问题?