ROUND()

函数说明

ROUND() 函数返回了某个数字在特定位数四舍五入后的数值。 该函数返回指定位数上最接近的数字。如果给定的数字与周围的数字距离相等(比如为 5),那么将采用 “banker’s rounding”(银行进位法)的方式进行舍入。

函数语法

  1. > ROUND(number, decimals)
  2. > ROUND(number)

参数释义

参数说明
number必要参数,想要进行舍入的数值,可取任意数值数据类型
decimals可选参数,表示将要舍入的小数点后的位数。默认值为 0,代表舍入到整数。
decimals>0 函数将舍入到小数点后的位数
decimals<0 函数将舍入到小数点前的位数
decimals=0 函数将舍入到整数

示例

  1. drop table if exists t1;
  2. create table t1(a int ,b float);
  3. insert into t1 values(1,0.5);
  4. insert into t1 values(2,0.499);
  5. insert into t1 values(3,0.501);
  6. insert into t1 values(4,20.5);
  7. insert into t1 values(5,20.499);
  8. insert into t1 values(6,13.500);
  9. insert into t1 values(7,-0.500);
  10. insert into t1 values(8,-0.499);
  11. insert into t1 values(9,-0.501);
  12. insert into t1 values(10,-20.499);
  13. insert into t1 values(11,-20.500);
  14. insert into t1 values(12,-13.500);
  15. mysql> select a,round(b) from t1;
  16. +------+----------+
  17. | a | round(b) |
  18. +------+----------+
  19. | 1 | 0 |
  20. | 2 | 0 |
  21. | 3 | 1 |
  22. | 4 | 20 |
  23. | 5 | 20 |
  24. | 6 | 14 |
  25. | 7 | -0 |
  26. | 8 | -0 |
  27. | 9 | -1 |
  28. | 10 | -20 |
  29. | 11 | -20 |
  30. | 12 | -14 |
  31. +------+----------+
  32. 12 rows in set (0.00 sec)
  33. mysql> select a,round(b,-1) from t1;
  34. +------+--------------+
  35. | a | round(b, -1) |
  36. +------+--------------+
  37. | 1 | 0 |
  38. | 2 | 0 |
  39. | 3 | 0 |
  40. | 4 | 20 |
  41. | 5 | 20 |
  42. | 6 | 10 |
  43. | 7 | -0 |
  44. | 8 | -0 |
  45. | 9 | -0 |
  46. | 10 | -20 |
  47. | 11 | -20 |
  48. | 12 | -10 |
  49. +------+--------------+
  50. 12 rows in set (0.01 sec)
  51. mysql> select round(a*b) from t1;
  52. +--------------+
  53. | round(a * b) |
  54. +--------------+
  55. | 0 |
  56. | 1 |
  57. | 2 |
  58. | 82 |
  59. | 102 |
  60. | 81 |
  61. | -4 |
  62. | -4 |
  63. | -5 |
  64. | -205 |
  65. | -226 |
  66. | -162 |
  67. +--------------+
  68. 12 rows in set (0.01 sec)