#include <stdio.h>
float taxiFee(int n,int t)
{
float fee;
if((t<23)&&(t>=5))
{
if(n<=3)
{
fee = 13+1;
}
else
{
fee = 13+1+(n-3)*2.3;
}
}
else
{
if(n<=3)
{
fee = 13+1;
}
else
{
fee = 13+1+(n-3)*2.3*(1+0.2);
}
}
return fee;
}
int main()
{
float feeall;
feeall = taxiFee(12,9)+taxiFee(12,18);
printf("小明每天打车总费用为%f元",feeall);
}
float型一般保留7位有效数字,%f默认情况下输出6位小数,69.400000有效位数是8位,所以输出的最后一位是无效的。所以要么printf("小明每天打车总费用为%.3f元",feeall);
要么把float型改成定义为double型,double型精度更高。
#include <stdio.h>
static getMoney()
{
double total;
total=(13+(12-3)*2.3+1)*2;
printf("打车费用%f\n",total);
}
int main()
{
getMoney();
return 0;
}
输出:打车费用69.400000 但是如果total换成float类型的话 ,就是69.400002