我必须找到函数f(x) = x / (1-x)^2
的结果,其中0 < x < 1
。
该值的格式只能是6
个小数位。在
这是我的C++代码:
float x; scanf("%f",&x);
printf("%.6f",x/((1-x)*(1-x)));
我在Python中也是这样做的:
^{pr2}$
对于x的某些值,两个程序给出了不同的答案。在
例如,对于x = 0.84567
C++给出了^ {CD5>},Python给出了{{CD6>}
为什么会这样?
根据解决方案,Python答案是正确的,而C++答案是错误的。在
Tags:
正如其他人所指出的,python中的浮点数是使用C中的
double
类型实现的。在在Coliru上运行此示例:
展示了不同之处:
^{pr2}$Python实现了ieee754双精度,所以它的输出更接近真实答案。在
来自文档:https://docs.python.org/3/tutorial/floatingpoint.html#representation-error
在C++浮点中,P>是单精度的。{{cd2>应该使用相似的输出。在样本输出:
^{pr2}$结论:
Python使用double,而您使用float。在
相关问题 更多 >
编程相关推荐