问答详情
源自:5-14 综合练习

为什么float类型总是算出来是近似值?

#include<stdio.h>


//计算正常里程价格

double fDistance(float n)    

{

double u = 2.3;

double p = 0.0;

if (n <= 3.0 && n > 0.0)     //里程合法性

{

return 13.0;

}

else if (n > 3.0)

{

p = u * (n-3.0) + 13.0;      //加上基础13元,减去3km基础里程

return p;

}

else     

{

printf("里程数据错误\n");

return 0.0;

}

}


//计算时间段价格增加部分

double fTime(float t)

{

if (t < 23.0 && t >= 5.0)

{

return 1.0;

}

else if(t<24.0 && t>0.0)     //时间合法性

{

printf("时间数据错误\n");

return 0.0;

}

else

{

return 1.2;

}

}


int main()

{

double Total1 = 0.0;

double Total2 = 0.0;


Total1 = fDistance(12.0) * fTime(9.0)+1.0; //加额外的燃油附加费

Total2 = fDistance(12.0) * fTime(18.0)+1.0;

printf("小明每天打车费用总计:%lf 元",Total1+Total2);

return 0;

}


提问者:shaw_Foo 2021-12-31 14:32

个回答

  • weixin_慕盖茨3133535
    2024-06-06 13:39:51

    float是浮点数,秒了