例如,我有以下数值:
0.000018
这是6位小数,但我想将它四舍五入到最接近的第4位小数,以便:
0.000018 -> 0.0001
我尝试了 round()
函数,但如果我简单地使用 round() 函数:
round(0.000018,4) = 0.0000
在处理金融小数时,在这种情况下需要四舍五入并向客户收费,而不是白嫖给他们!但是 round()
函数会根据值向上或向下取整,我需要始终向上取整。
是否有一种简单的方法来实现这个需求?
例如,我有以下数值:
0.000018
这是6位小数,但我想将它四舍五入到最接近的第4位小数,以便:
0.000018 -> 0.0001
我尝试了 round()
函数,但如果我简单地使用 round() 函数:
round(0.000018,4) = 0.0000
在处理金融小数时,在这种情况下需要四舍五入并向客户收费,而不是白嫖给他们!但是 round()
函数会根据值向上或向下取整,我需要始终向上取整。
是否有一种简单的方法来实现这个需求?
ceil(0.000145* 10000) = ceil(1.45) = 2
再除回去,你就得到了 0.0002
编辑:等等,什么?这个方法行不通。我的意思是显然要用 FLOOR
,但操作方式相同 :D
手册在同一页上 :)floor(0.000145* 10000) = floor(1.45) = 1
再除回去,你就得到了 0.0001
还有另一种方法,就是添加一个10的半倍数。例如:round(x+0.005, 2)
,其中x为0.923 = 0.93,这样可以减少最大浮点除法误差。
ROUND(X,D)
,将值X舍入到小数点后D位。ROUND(1.11,1)
会变成1.1
而不是1.2
。 - lindon fox