NCHU逸尘 2015-04-08 13:34 采纳率: 33.3%
浏览 5968
已采纳

C语言 小数保留问题

float x, b; int m;
scanf_s("%f",&x);
m = (1000 * x + 0.5);
b = m / 1000;
printf("保留小数点后三位的数是:%f",b);
//我输入123.4567,然后结果是123.00000,为毛啊?
不应该是123.457吗?

  • 写回答

5条回答 默认 最新

  • danielinbiti 2015-04-08 13:44
    关注

    b = m / 1000;是先除在转float,不是先转再除。因为m和1000都是整数。所以m/1000除完会截掉小数,整数部分再转float.
    如果b=m*1.0/1000就是你要的结果了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?