我希望
select je from tablename出现
5.4
5
10.55
select sum(je) from tablename出现
20.95
我使用mssql或oracle数据库都默认是上面的结果呀?
但用mysql就会出现
select je from tablename出现
5.40
5.00
10.55
select sum(je) from tablename出现
20.95000099
之类的,有办法解决吗?改字段该设计成什么数据类型呢?

解决方案 »

  1.   

    FORMAT(X,D) 
    将数字 X 格式化为一个 '#,###,###.##' 的形式,四舍五入到 D 位小数。如果 D 为 0,返回的结果将没有小数点和小数部分: 
    mysql> SELECT FORMAT(12332.123456, 4);
            -> '12,332.1235'
    mysql> SELECT FORMAT(12332.1,4);
            -> '12,332.1000'
    mysql> SELECT FORMAT(12332.2,0);
            -> '12,332'
      

  2.   

    浮点数和双精度数在运算的时候都会有误差,不适合做存储金钱类型。建议你还是用decimal。至于输出格式,你可以试试select sum(*)+0 from talbe_name这种方式看看 。
      

  3.   

    其实就是希望它会根据数据本身有多少位小数就显示多少位小数,FORMAT(money,2)一使用的话,很多金额本来是整数后面都带了.00很难看呀,晕,不可能没办法解决这个问题吧!
      

  4.   

    金额还是统一小数位比较好看吧?
    会计那里也是这么要求的.你也可以试试round的显示结果如何
      

  5.   

    还是没有看到满意的答案!既然大家都用Mysql+php难道没碰到过这些问题吗?
      

  6.   

    不清楚你的mysql版本,试试这个:SELECT trim(trailing '.' from trim(trailing '0' from amount))
    FROM tablename WHERE 1另外你的mysql查询结果怎么客户会看到?
    如果是经过php处理的,用sprintf/printf就更方便了