比如:
123.135保留两位小数,小数点四舍5入 后变成 123.14

解决方案 »

  1.   

    ceil
    floorc runtime lib
      

  2.   

    1.round(double,int )四舍五 
    2.d.ToString("f2");//结果取小数点后两位,且四舍五入 
    (d-0.005).ToString("f2");//直至保留小数点前两位,不四舍五入
      

  3.   


    long Round(double x) 
    {
    if (x>=0) 
    return (long) (x+0.5);
    else 
    return (long) (x-0.5);
    }void main()
    {
      double i = 123.135;
      Round(i);
    }
      

  4.   

    123.135 * 100 = 12313.5(int)(12313.5 + 0.5) = 12314    //取整12314/100 = 123.14完毕:)
      

  5.   

    CString str;str.Format(_T("%6.2f"),123.345); //不能四舍五入 得到  123.34str.Format(_T("%6.2f"),123.346); //就可以四舍五入 得到  123.35
    什么原因呢???????
      

  6.   

    手动控制浮点数小数点后有效数字的位数 
    http://blog.vckbase.com/panic/archive/2005/10/31/14326.html
      

  7.   

    如果只是输出,可以使用setprecision(n)控制输出数字个数,也可以使用setprecision(n)与setiosflags(ios::fixed)合用,控制小数点右边的数字个数;
    如:cout<<setiosflags(ios::fixed);
    cout<<setprecision(n)<<value;如果要得到四舍五入之后的值,那就写个函数好了
    如:
    int temp = (int)(x * 100.) + 0.5;   
      y = temp / 100.;
      

  8.   

    CString.Format(_T("%.ng"), value),其中value为浮点型或者整形数据,n为位数;
    比如:disp.Format(_T("%.15g"), result);
      

  9.   

    参考如下:
    double round(double v, int len)
    {
    if (len<0)
    {
    len=0;
    } double result=1;
    while(len--)
    {
    result*=10;
    }
    return int(v*result+0.5)/result;
    }
      

  10.   

    float a;
            CString m_value_a;
    m_value_a.Format("%f",a);//"%f"可以修改
      

  11.   


    //四舍无入的完整定义:四舍五入,奇进偶不进
    //解释:
    //如果舍去部分>0.5,则进位,<0.5,则舍去。
    //如果正好等于0.5,看要保留的最后一位是奇数还是偶数,如果是奇数,则进位,偶数则舍去。
    //这是为了进和舍各占50%的几率。
      

  12.   

    #define ROUND(d) ( ((d) >= 0) ? ((d) + 0.5):((d) - 0.5) )
      

  13.   

    关于四舍五入,推荐看一下下面的文章:http://weaver.blogbus.com/