了输下在是
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才能显示出最正确的答案,为什么。
double(双精度型)比float(单精度型)存的数据更准确些,占的空间也更大。double精度是float的两倍
C语言入门
926210 学习 · 20797 问题
相似问题