我需要像这样四舍五入小数:
1.00 ->1.0
1.987->1.98
1.93-> 1.93
1.07->1.07
如何在mysql中做到这一点?
这里有一些文档
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
仅当您输出数字(数字1.0
= 1.00
)时,这才会有所不同。所以:
(case when format(num, 2) = '1.00' then '1.0' else format(num-0.005, 2) end)
这是为了克服舍入而不是截断-0.005
的事实。format()
就像这样:
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