為什么結果為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;
}
2016-06-25
因為浮點數(shù)并不能完全精確的表示數(shù)據(jù),并不能像真正算術那樣得出最準確的數(shù)據(jù),只能在很大程度上接近真實結果
2016-06-25
將float改為double就好了
2016-06-25
?printf("小明每天打車的總費用為%f",Sum_day);
將此行代碼改為?printf("小明每天打車的總費用為%.5f",Sum_day); 可以將小數(shù)點最后一位的2省去