有没有办法不使用流来做到这一点?例如,像这样:
double a = 6.352356663353535;
double b = a.precision(5);
代替:
double a = 6.352356663353535;
std::cout.precision(5);
std::cout << a << std::endl;
我是 C++ 的新手,我很好奇。提前谢谢。
最佳答案
我已经根据@john、@Konrad 和@KennyTM 的建议修改了代码。我检查过它是否适用于负数。
#include <cmath>
#include <cstdio>
using namespace std;
int main()
{
double a = 6.352356663353535;
double intpart;
double fractpart = modf (a, &intpart);
fractpart = roundf(fractpart * 100000.0)/100000.0; // Round to 5 decimal places
double b = intpart + fractpart;
printf("%.5lf", b);
}
输出
6.35236
关于c++ - 在不使用流的情况下设置 double (ios_base::precision),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12349323/