请大佬看下输出结果为什么是69.400002,是不是把什么定义搞混了,谢谢

来源:5-14 综合练习

游僧

2018-10-06 11:33

#include <stdio.h>

float carmoney(int t, int n, int l)

//t: 时间,  n: 乘车次数, l: 距离

{

    float sum = 0;

    if(l<=3)

    {

        sum = 13 * n + n * 1;

    }

    else

    {

        if(t>=23||t<5)

        {

            sum = (13 + (l - 3) * 2.3 * 1.2 + 1) * n;

        }

        else

        {

            sum = (13 + (l - 3) * 2.3 + 1) * n;

        }

    }

    return sum;

}

int main()

{

    float daymoney;

    daymoney = carmoney(18, 1, 12) + carmoney(9, 1, 12);

    printf("小明每天打车总费用:%f\n", daymoney);

    return 0;

}


写回答 关注

2回答

  • 徐大
    2018-10-11 22:59:33

    float类型和double类型的输出都用"%f",而"%f"输出默认是保留6位小数的。

  • Seeya_96
    2018-10-10 13:57:09

    float改成double

C语言入门

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

926207 学习 · 20797 问题

查看课程

相似问题