如1000除以742,实际值应该是1.3477088...,可是1000/742的结果是没有小数点后的整数值,请问怎样才能得到四舍五入后的小数点后两位的结果值呢,谢谢了! 

解决方案 »

  1.   

    整数是取整除法。可以:
    1000/(double)742
    就可以返回一个double型了。
      

  2.   

    float和double的精度都是固定的,不可以在程序中指定,但“数值”和“数值的显示”是两码事,你完全可以把一个浮点数格式化成一个只有两位小数的数字字符串再显示出来。
    比如:
    double d = 3.1415926;
    char s[16];
    sprintf(s, "%.2f", d);
      

  3.   

    printf("%.2f\n",1000/(double)742);
      

  4.   

    整数除整数,结果还是整数,所以这样除会不到小数位.可以先将整数去得轮换成浮点来计算:doube result = (double)1000/742;
      

  5.   

    四舍五入:保存两位小数的话首先要不得到的数+0.005
    然后再×100
    然后强制转换为整数
    然后在强制转换为浮点数再除以100((int)((1000/(double)742+0.005)*100))/(double)100如果是输出的话 就printf("%.2f\n",1000/(double)742+0.005);
      

  6.   

    先得到小数部分dec
    dec*=100;
    dec+=0.5;
    int n=(int)dec;
    dec=n/100.0;