刚开始学编程的新手,学校的编程作业预期结果是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;
}
int n = p*1000000;
p = n/1000000.0;
printf("p=%f",p);