问答详情
源自:5-14 综合练习

关于精度的问题

精度问题

#include <stdio.h>

double cost(int mile,int ti)

//定义函数money,mile为距离,ti为时间

{

    int qbj=13;//起步价13元

    double jj=2.3;//计价2.3元

    int rys=1;//燃油税1元

    double money;//总花费费用

    if(mile<=3)//判断距离

    {

        money=qbj+rys;//统一的价格

    }

    else

    {

        if(ti<5||ti>=23)//夜间价格

        {

        money=qbj+rys+(mile-3)*jj*1.2;

        }

        else//白天正常价格

        {

        money=qbj+rys+(mile-3)*jj;

        }

    }

    return money;

}

int main()

{

    double all;//总价格

    all = cost(12,9) + cost(12,21);

    printf("小明每天打车的总费用是%lf",all);

    return 0;

}

第一个加粗的double单独改成float后结果为69.400002,第二个同理结果变为69.300006。

都是double才能显示出最正确的答案,为什么。

提问者:了输下在是 2020-07-07 20:18

个回答

  • Senjia07
    2020-09-26 13:35:15

    double(双精度型)比float(单精度型)存的数据更准确些,占的空间也更大。double精度是float的两倍