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

每天总费用69.400002,不知道后面2怎么来的

#include <stdio.h>
float sun(int time, int dis){
    float sp = 13, p = 2.3, sum = 0;
    
    if(dis<=3){
        sum = 13+1;
    }else{
        if(time>=23 || time<5){
            sum = 13+(dis-3)*2.3*1.2+1;
        }else{
            sum = 13+(dis-3)*2.3+1;
        }
    }
    return sum;
}
int main()
{
    float sum = sun(9,12)+sun(18,12);
    printf("总费用:%f",sum);
    return 0;
}


提问者:阿伟_M囧君 2015-02-28 14:26

个回答

  • onemoo
    2015-02-28 22:51:29

    float类型的精度不够,在多次运算后结果就会有误差。你的这个程序要求的精度应该也不会太高,换成double应该就好了。


    另外,sun函数中的sp和p变量都没有使用。