为了账号安全,请及时绑定邮箱和手机立即绑定

为什么结果为69.400002 最后的2是怎么来的

#include <stdio.h>

float CostComputer(int time ,int distance);

int main()

{

   float Sum_day=0;

    Sum_day=CostComputer(9,12)+CostComputer(18,12);

    printf("小明每天打车的总费用为%f",Sum_day);

    return 0;

}

float CostComputer(int time ,int distance)

{

    float price=2.3;

    float Sum=0;

    if(time>=23||time<5)

      price=1.2*price;

    if(distance<=3)

       Sum=13+1;

    else

       Sum=13+(distance-3)*2.3+1;

    return Sum;

}


正在回答

3 回答

因为浮点数并不能完全精确的表示数据,并不能像真正算术那样得出最准确的数据,只能在很大程度上接近真实结果

0 回复 有任何疑惑可以回复我~

将float改为double就好了

0 回复 有任何疑惑可以回复我~

 printf("小明每天打车的总费用为%f",Sum_day);

将此行代码改为 printf("小明每天打车的总费用为%.5f",Sum_day); 可以将小数点最后一位的2省去

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么结果为69.400002 最后的2是怎么来的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信