我需要求解一个函数 f(x) = x / (1-x)^2
, 其中 0 < x < 1
。并且需要将结果保留小数点后 6
位。
这是我的C++代码:
float x; scanf("%f",&x);
printf("%.6f",x/((1-x)*(1-x)));
我用Python做了同样的事情:
x = float(input())
print ("%.6f" % (x/((1-x)**2)))
对于某些x的值,这两个程序给出的答案是不同的。
例如,当x = 0.84567
时,
C++给出的结果为35.505867
,而Python给出的结果为35.505874
为什么会发生这种情况?
根据解决方案,Python的答案是正确的,而C++的答案是错误的。
double
而不是float
。 - 463035818_is_not_a_number