程序输出结果与预期结果不同

img


img

刚开始学编程的新手,学校的编程作业预期结果是1.967151,但是我写出来的是1.967152一直过不了..应该要怎么改?

这是浮点型精度丢失问题。

float单精度类型的精度不够,改成 double 双精度即可

代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include <stdio.h>
#include <math.h>

int main()
{
    double p,r,n;
    n=10;
    r=0.07;
    p = pow(1+r,n);
    printf("p=%f\n", p);
    return 0;
}

img

int n = p*1000000;
p = n/1000000.0;
printf("p=%f",p);