运行结果的问题出在哪儿

问题是这样的:

img


我的代码:

img

但是我的代码运行结果是这样的:

img

结果里面有两个数据和题目的不一样,所以题目一直显示答案错误通过不了。

是浮点数计算的小误差。 你吧 printf 里面的 .2f 改为 .3f 看看,其实误差是很小的。

把代码里面的整数写成小数,比如2写成2.0

printf("%.2f", f) 打印小数是会进行四舍五入的,7.065就会四舍五入为7.07。你需要再写个函数处理下

/*浮点数保留小数点后N bit,且不会被四舍五入*/
float conversion(float input, int potnum)
{
    float result = pow(10.0, potnum);
    int temp = input * result;
    input = temp / result;
    return input;
}