3.2.6版本 round函数bug

【详述】round函数没有四舍五入
【背景】无
【业务影响】 数据不准确
【是否存算分离】否
【StarRocks版本】3.2.6
【集群规模】3fe(1 follower+2observer)+ 3be(fe与be混部)
【机器信息】40C/256G/万兆
【联系方式】wx: jztian513
【附件】
问题一: 部分double类型数据没有四舍五入,decimal类型则不存在该问题
select round(cast(1.0128125 as double),6)


问题二: double类型结果为 -0.0 ,正常结果应该为 0
select round(cast(-0.0000001 as double),6)

问题一:因为 double 无法准确表示 1.0128125,实际存储的是 1.0128124999999999,所以四舍五入就是 1.012812 了。

问题二:double 是同时存在 -0 与 +0 的。不过 -0 与 +0 大部分时候可以看做是一样的,-0 = +0 也是 true。
round(cast(-0.0000001 as double),6) 的正确结果就是 -0。