1.小数位不四舍五入   ,   例如   :   21.875   保留   2位小数   返回   21.87   2.   小数位并四舍五入,     例如   :   21.875   保留   2位小数   返回   21.88   ,
又例如   :   21.875   保留   1位小数   返回   21.9 3.只返回小数部分   ,例如   36.0125   返回   0.0125 4.返回整数部分     ,例如   36.0125   返回   36 5.返回整数部分并进位     ,例如   36.0125   返回   37 6.返回整数部分并四舍五入     ,例如   36.0125   返回   36 ,  又例如   36.8125   返回   37 

解决方案 »

  1.   

    FLOOR(X) 返回不大于X的最大整数值。 CEILING(X) 返回不小于X的最小整数值。 ROUND(X) 返回参数X的四舍五入的一个整数。ROUND(X,D) 返回参数X的四舍五入的有D为小数的一个数字。如果D为0,结果将没有小数点或小数部分。
      

  2.   


    3.只返回小数部分       ,例如       36.0125       返回       0.0125   
    mysql> set @a=2.0124;
    Query OK, 0 rows affected (0.00 sec)mysql> select @a-floor(@a);
    +----------------------------------+
    | @a-floor(@a)                     |
    +----------------------------------+
    | 0.012400000000000000000000000000 | 
    +----------------------------------+
    1 row in set (0.00 sec)mysql> select round(@a-floor(@a),4);
    +-----------------------+
    | round(@a-floor(@a),4) |
    +-----------------------+
    |                0.0124 | 
    +-----------------------+
    1 row in set (0.00 sec)
      

  3.   

    1.小数位不四舍五入, 例如 : 21.875 保留  2位小数   返回  21.87 
    select round(floor(21.875*100)/100,2);
      

  4.   

    mysql> SELECT ROUND(21.8565,3);
    +------------------+
    | ROUND(21.8565,3) |
    +------------------+
    |           21.856 |
    +------------------+
    1 row in set (0.00 sec)可是真正結果應該是 21.857﹐請問你們有沒有遇到這種情況﹐如何解決﹖
      

  5.   

    mysql> select round(21.8565,3);
    +------------------+
    | round(21.8565,3) |
    +------------------+
    |           21.857 |
    +------------------+
    1 row in set (0.03 sec)是不是你的版本问题
    建议升级到最新的正式版