最近发现mysql里float类型的数据查询出来显示数据有一大串的小数位,例如数据库里金额9.9查询显示出来是9.899999618530273,百度之后发现是mysql的float浮点类型精度问题
现在解决办法是用Round()函数,这里先记录,以后再看有什么好的解决办法。这个函数是四舍五入意思,所以在mysql中的数值类型,float是不精确的,尽量避免使用,可使用double或者decimal,两者的差别是double是浮点计算,decimal是定点计算,会得到更精确的数据。
在mysql中,round函数用于数据的四舍五入,它有两种形式:
1、round(x,d) ,x指要处理的数,d是指保留几位小数
这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0;
2、round(x) ,其实就是round(x,0),也就是默认d为0;
下面是几个实例
1、查询: select round(1123.26723,2);
结果:1123.27
2、查询: select round(1123.26723,1);
结果: 1123.3
3、查询: select round(1123.26723,0);
结果:1123
4、查询: select round(1123.26723,-1);
结果: 1120
5、查询: select round(1123.26723,-2);
结果:1100
5、查询: select round(1123.26723);
结果:1123
(文章今日已有 1 人访问,总访问量 7 ::>_<::)