晕,那我都不能使用MYSQL的四舍五入函数了?

解决方案 »

  1.   

    要是要计算一个字段A*另外一个字段B,然后四舍五入的值,更新到字段C,那不是要先读取记录,再计算再更新到表里
      

  2.   

    这个……取余知道不?大体思路是取余的思路。你要问我怎么取余……那我就郁闷了,不知道怎么和你说了首先,你知道你的数据的小数位数是多少,按照你给出的数据,都是3位的。按照这样,我们给每一个数乘以1000,得到一个完整的整数!然后,我们除以1000*10(也是有办法判断是不是要乘以100还是1000的,但是这个没有讨论的意义。)也就是10000。除的时候用%,得到的就是余数了。只要判断这个余数是不是大于5就不是能进行四舍五入了么?之后有另外一种方法,就是用MySQL取余进行运算!select MOD(列名) from 数据表 。我们使用资查询的方式,就可以使用 update 数据表 set 要四舍五入的字段=要四舍五入的字段+1 where (select MOD(列名) from 数据表)>4 .......
    同理,如果小于四不久什么都OK了么?上面的语句肯定有问题,不要拿来做测试,这东西就是讲了个原理没有测试,现在我的环境中没有php和MySQL
      

  3.   

    可能你的MYSQL版本太低了,MySQL 5.0.3已经很好的支持ROUND()了,我用MySQL 5.0.18调试,
    "select round(15.325, 2)"得到结果是"15.33".别的也没问题的.关于小数的问题,很多原因是因为它的二进制表示吧.