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

关于精度的问题

精度问题

#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 回答

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

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

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

进入课程

关于精度的问题

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