今天遇到一个问题,利用Mysql的Round的时候,应该是“四舍五入”的,
可是,Round(15.015, 2)的时候,却返回了15.01而不是15.02!
请指教, 谢谢!

解决方案 »

  1.   

    你的MySQL版本是多少的?mysql> select Round(15.015, 2);
    +------------------+
    | Round(15.015, 2) |
    +------------------+
    |            15.02 |
    +------------------+
    1 row in set (0.00 sec)mysql> select version();
    +----------------------+
    | version()            |
    +----------------------+
    | 5.1.33-community-log |
    +----------------------+
    1 row in set (0.01 sec)mysql>
      

  2.   

    你是不是表中的数据?数据是什么型?MySQL 在浮点数的运算上会有误差的。这是由计算机自己决定的。MySQL在其官方文档中专门用了一章来讨论数据精度,其中专门一节来说明 四舍五入http://dev.mysql.com/doc/refman/5.1/zh/precision-math.html#precision-math-rounding
    24.4. 四舍五入
    本节讨论了精度数学的四舍五入特性,ROUND()函数,以及插入DECIMAL列时的四舍五入特性。ROUND()函数的行为取决于其参量是准确的还是近似的: