Kazdale 2023-12-20 23:02 采纳率: 0%
浏览 40

请编一个将浮点数四舍五入的函数Fun,其功能是使浮点数保留2位小数,并对第3位进行四舍五入

请编一个将浮点数四舍五入的函数Fun,其功能是使浮点数保留2位小数,并对第3位进行四舍五入
我感觉我代码没问题啊,怎么输出结果不对。
求解答

#include <stdio.h> 
float fun(float h)
{
    return (int)(h*100+0.5) / 100.0;
}
void main()
{
    float a;
    printf("Enter a: ");
    scanf("%f", &a);
    printf("The original data is : ");
    printf("%f \n", a);
    printf("The result : %f\n", fun(a));
}

  • 写回答

3条回答 默认 最新

  • 赵4老师 2023-12-21 09:35
    关注

    仅供参考:

    //Round(1.234,2) = 1.23
    //Round(1.234,0) = 1.0
    //Round(123.4,-1) = 120.0
    double Round(double dVal, short iPlaces) {
        double dRetval;
        double dMod = 0.0000001;
        if (dVal<0.0) dMod=-0.0000001;
        dRetval=dVal;
        dRetval+=(5.0/pow(10.0,iPlaces+1.0));
        dRetval*=pow(10.0,iPlaces);
        dRetval=floor(dRetval+dMod);
        dRetval/=pow(10.0,iPlaces);
        return(dRetval);
    }
    
    double round(double dVal, short iPlaces) //iPlaces>=0
    {
        unsigned char s[20];
        double dRetval;
    
        sprintf(s,"%.*lf",iPlaces,dVal);
        sscanf(s,"%lf",&dRetval);
        return (dRetval);
    }
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月20日