為什么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;
}
2024-06-06
float是浮點數,秒了