关于精度的问题

来源:5-14 综合练习

了输下在是

2020-07-07 20:18

精度问题

#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才能显示出最正确的答案,为什么。

写回答 关注

1回答

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

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

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题