gpt4 book ai didi

python - 相同的算术运算在 C++ 和 Python 中给出不同的结果

转载 作者:太空狗 更新时间:2023-10-29 19:51:23 26 4
gpt4 key购买 nike

我必须找到函数 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++答案是错误的。

最佳答案

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <iomanip>

int main()
{
const char data[] = "0.84567";
float x;
sscanf(data, "%f",&x);

double x2;
sscanf(data, "%lf",&x2);

std::cout << std::setprecision(8) << (x/((1-x)*(1-x))) << std::endl;
std::cout << std::setprecision(8) << (x2/((1-x2)*(1-x2))) << std::endl;
}

示例输出:

35.505867
35.505874

结论:

Python 使用的是 double ,而你使用的是 float 。

关于python - 相同的算术运算在 C++ 和 Python 中给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46771550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com