roundbank函数这是bug吗

上图是4-3.6=0.4,0.4/64=0.00625

roundbank保留4位,正确

这个是5-4.6=0.4,0.4/64=0.00625

啊啊啊啊啊,同样是0.00625的结果,为啥下面的保留位数就错啦

附上版本号

浙江省
浏览 367
收藏
1
分享
1 +1
5
+1
全部评论 5
 
会飞的鱼

KVP函数专家、创作者俱乐部成员

这是浮点误差导致的,因ROUNDBANK计算规则有些特殊,可以使用ROUND函数先处理下计算结果,再使用ROUNDBANK函数计算 =ROUNDBANK(ROUND((5-4.6)/64,5),4)
· 辽宁省
1
回复
wils

创作者俱乐部成员

总感觉round带来的误差更大 比如1.149,只用roundbank取1位小数,结果肯定是1.1 但套一层round取2位小数,是1.15,然后roundbank取1位,结果是1.2,不符合预期 确实,先round取10位,遇到特殊情况的可能就很低了,但总感觉先round就已经损失了精度,后面更难以判断了。。。 所以还是希望官方出几个基础的,十进制运算,参数是字符串的,加减乘除函数,那样roundbank才算完美
· 海南省
回复
 
wils

创作者俱乐部成员

试了一下,比较方便的解决办法是重新定义减法和除法,用bigjs模块
· 海南省
1
回复
 
估计又是浮点运算造成的
· 福建省
1
回复
 
wils

创作者俱乐部成员

如果真对精度要求高,还是写代码吧。。。 5-4.6>0.4
· 广东省
1
回复