-6

我需要像这样四舍五入小数:

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

如何在mysql中做到这一点?

4

3 回答 3

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十进制:地板而不是圆形

于 2013-07-26T14:03:52.430 回答
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()

于 2013-07-26T14:15:31.340 回答
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

更多信息

于 2013-07-26T14:03:00.410 回答