现在有个double类型的变量
 double x;
 x = -2345.5645764770;
 我现在只想取小数点后的固定位数,比如说3位或4位,应该怎么做?PS.现在我还不知道X的具体值,但小数点后肯定有8位小数 

解决方案 »

  1.   

    char szItem[512] ;
    sprintf(szItem, "%.3f", x);
    double xx = atof(szItem);
      

  2.   

    如果是截尾法,那么用 x = ((int)(x*10000)/10000.0;获取四位小数
    如果是四舍五入法,则要判断x的正负,然后 x = ((int)(x*10000 + 0.5))/10000;如果是负数,则是-0.5
      

  3.   

    用这个方法sprintf(szItem, "%.3f", x);需要包含什么头文件呢?
      

  4.   

    回复人: happyparrot(快乐鹦鹉) ( ) 信誉:150 
    你的方法我认为不好,如果X很大的话转换成INT类型的时候可能溢出
      

  5.   

    详见MSDN: printf format specifications
      

  6.   

    floor(x * 1000.0);

    ceil(x * 1000.0);