最有可能是一个非常简单的问题,请保持任何答案易于理解我仍然很新:
我正在制作一个小应用程序,我需要使用权力进行一些计算。经过一番研究后,我发现了战斗机功能,并且发挥了作用。最后我想出了这个剪辑,它起作用了:
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{
float dummy2, test(6.65);
dummy2 = (float) pow((float) 3.57, test);
cout << dummy2;
return 0;
}
并返回正确的答案(4734.17),但只返回两位小数。我想要5个小数位。
我在这里做错了什么?我使用了错误的数据类型(浮动)吗?或者仅仅使用2dp是pow功能中的任何限制吗?
我可以,如果它只是用我想要的值定义常量,因为它只需要4或5个总和,我需要这个精度,但如果有可能让程序计算它将是大。
由于
答案 0 :(得分:6)
我会像fbinder所说的那样做,并使用双打来获得更高的精确度。 要解决您的问题,您有两种选择,C风格和C ++风格。
<强> C-风格强>
#include <cstdio>
printf("%.5f", dummy2);
C ++风格
#include <iomanip>
std::cout << setprecision(5) << dummy2 << std::endl;
OR
std::cout.precision(5);
std::cout << dummy2 << std::endl;
// continue to use cout to output 5 decimal places
答案 1 :(得分:3)
为了获得更好的精确度,你应该使用double。对于花车,双打有15位数的精度,而7位。