亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問為什么我運行成功結果卻是69.400002 不應該是69.400000嗎?

#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);
}

正在回答

2 回答

float型一般保留7位有效數字,%f默認情況下輸出6位小數,69.400000有效位數是8位,所以輸出的最后一位是無效的。所以要么printf("小明每天打車總費用為%.3f元",feeall);

要么把float型改成定義為double型,double型精度更高。

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

#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


1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請問為什么我運行成功結果卻是69.400002 不應該是69.400000嗎?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號