为了账号安全,请及时绑定邮箱和手机立即绑定

为什么计算乘车费用float算的是69.399986,而用double算的是69.40000就更准确一些呢,实际的参数最多只有两位数而已?

#include <stdio.h>

float cost(int way,int time)
{
    float price;
    if(way<=3)
   {
      price=14;
   }else{
        if(time>=23||time<=5)
            {
             price=cost(way-1,time)+2.3*1.2;
             }
             else{
                   price=cost(way-1,time)+2.3;
                  }
        }
    return price;
}

int main(){
    
    printf("上班打车费是%f元\n", cost(12,9));
    printf("下班打车费是%f元\n", cost(12,18));
    float pay=cost(12,9)+cost(12,18);
    printf("上下班打车费一共是%f元\n", pay);
}


正在回答

2 回答

这个我也想不明白,如果有大佬回答出来了麻烦楼主叫一下我

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

float的精度比double大吧应该是

0 回复 有任何疑惑可以回复我~
#1

后会无期_ 提问者

好像是double精度比较大把
2017-05-21 回复 有任何疑惑可以回复我~
#2

Deany

兄弟真会玩儿,哈哈哈哈
2017-06-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么计算乘车费用float算的是69.399986,而用double算的是69.40000就更准确一些呢,实际的参数最多只有两位数而已?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信