MySQL - 我怎样才能总是向上舍入小数?

时间:2011-10-09 18:19:03

标签: mysql rounding

例如,我有以下价值:

0.000018

这是小数点后6位,但是我想将它四舍五入到最接近的整数小数位,这样:

0.000018 -> 0.0001

我玩过round()函数但是如果我只使用round函数:

round(0.000018,4) = 0.0000

出于财务目的处理小数时,在这种情况下,需要向客户收取费用,而不是向他们收取免费赠品!但round()会根据价值上下波动,我需要不断向上舍入。

有一种简单的方法吗?

3 个答案:

答案 0 :(得分:29)

您可以使用ceil (ceiling)。它只会向上舍入,所以你必须乘以10000,然后再进行细胞再分割结果。

所以ceil(0.000145* 10000) = ceil(1.45) = 2 分回来,你将0.0002

编辑:等等,哇?这不起作用。我的意思是FLOOR显然但工作是一样的:D 手册也在同一页面上:)

所以floor(0.000145* 10000) = floor(1.45) = 1 分回来,你将0.0001

答案 1 :(得分:2)

使用ROUND(X,D),将值X舍入到D小数位。

答案 2 :(得分:2)

还有另一种方法,即添加10的倍数。例如:round(x+0.005, 2)其中x为0.923 = 0.93,这会减少最大浮点除法误差。