C++中的小数点和POW函数

C++中的小数点和POW函数,c++,decimal,C++,Decimal,最有可能是一个非常简单的问题,请保留任何易于理解的答案我在这方面还是很新的: 我正在制作一个小应用程序,我需要使用powers进行一些计算。经过一点研究,我在cmath中找到了pow函数,并进行了一场游戏。最后我想出了这个剪子,它很有效: #include <iostream> #include <cmath> using namespace std; int main () { float dummy2, test(6.65); dummy2 = (f

最有可能是一个非常简单的问题,请保留任何易于理解的答案我在这方面还是很新的:

我正在制作一个小应用程序,我需要使用powers进行一些计算。经过一点研究,我在cmath中找到了pow函数,并进行了一场游戏。最后我想出了这个剪子,它很有效:

#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位

我做错了什么?我是否使用了错误的数据类型浮动?或者,pow函数中的任何内容仅使用2dp是一种限制

我可以,如果用我想要的值来定义常数,因为它只有4或5个和,我需要这个精度,但是如果有可能让程序计算它,那就太好了


感谢获得更高的精度,您应该使用double。double有15位精度,float有7位精度。

我会按照fbinder说的做,使用double可以获得更高的精度。 为了解决问题,你有两种选择,C风格和C++风格。 C型

C++风格


15和7位小数仅为粗略值。特别是,7的浮动可能有点乐观…谷歌是你的朋友。并得到您想要的,即您需要使用setprecision作为cout参数。
#include <cstdio>
printf("%.5f", dummy2);
#include <iomanip>
std::cout << setprecision(5) << dummy2 << std::endl;
std::cout.precision(5);
std::cout << dummy2 << std::endl;
// continue to use cout to output 5 decimal places