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'

解决方案 »

  1.   

    select format(pow(9999,9),0)的结果是999,100,359,916,012,600,000,000,000,000,000,000,简直是在灾难
      

  2.   

    楼主想要什么??除非你是直接mysql命令行做客户端。记住,永远不要让mysql做(至少不要做过多)本该是你的表示层该干的事情。
    比如你现在的format,这个程序和mysql打交道的时候,直接传递数字,到你自己的表示层,肯定会有更丰富的format函数/类库
    又比如,不要将本来很简单的SELECT语句,因为弄成很复杂的SELECT,又是外联结,又是子查询的,而这样做的目的仅仅是为了让select的结果集,长的和报表一个样子。
      

  3.   

    我就是想要计算POW(555,16)这个数字的真实准确的值,而不是把它搞成一个浮点近似值
      

  4.   

    这个需要引入高精度计算,MYSQL不会这个东西。建议百度一下 "高精度算法",一般是用数组来实现多位数的运算(大于16 位的整数)
      

  5.   

    哦, 谢谢上面的各位, 我本来想看看mysql在做这种计算的时候到底有多么精确,因为我在用php作这种计算的时候Php给出了错误的答案,我想看看mysql的答案是什么样的
      

  6.   

    只要是目前的32位CPU计算机,不管什么程序,直接算都是这个结果。