ROUND IN SQL Works但是对于这种情况在MYSQL中要做什么

时间:2013-07-26 13:58:36

标签: mysql regex

我需要将小数字舍入为:

1.00 ->1.0
1.987->1.98
1.93-> 1.93
1.07->1.07

如何在mysql中执行此操作?

3 个答案:

答案 0 :(得分:2)

这里有一些文档

http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_round

快速回答:

mysql> SELECT ROUND(1.987, 2); = 1.99

或更多您正在寻找的东西

truncate(1.987, 2) = 1.98

来自Mysql decimal: floor instead of round

答案 1 :(得分:1)

如果您输出数字(数字,1.0 = 1.00),这只会有所不同。所以:

(case when format(num, 2) = '1.00' then '1.0' else format(num-0.005, 2) end)

-0.005是为了克服format()轮次而不是截断的事实。

答案 2 :(得分:0)

就像那样:

SELECT if(NUMBER mod 1=0,ROUND(NUMBER,1),ROUND(NUMBER,2));

例如

SELECT IF(1.00 MOD 1=0,ROUND(1.00,1),ROUND(1.00,2)); => 1.0

more info