我在写一个程序来计算的2 我用下面的两段代码负数幂:pow函数为cout和printf输出不同的输出?
cout.precision(3);
cout << scientific << pow(2.0, p) << endl;
和
ans = pow(2.0, p);
printf("%.3e\n", ans);
对于p = -8271
,该cout
给出了正确的答案(1.517e -2490),但我得到了一个与printf
(6.929e-310)差别很大的答案。为什么会出现这种差异?
我在Ubuntu上使用Codeblocks。
我们可以看到'ans'的变量声明吗?如果它不是'double'类型,那么你可能会将错误类型的参数传递给'printf'。 – templatetypedef