pro*_*oob 6 c++ precision double
有没有办法在不使用流的情况下执行此操作?例如,像这样:
double a = 6.352356663353535;
double b = a.precision(5);
Run Code Online (Sandbox Code Playgroud)
代替:
double a = 6.352356663353535;
std::cout.precision(5);
std::cout << a << std::endl;
Run Code Online (Sandbox Code Playgroud)
我是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);
}
Run Code Online (Sandbox Code Playgroud)
输出
6.35236
Run Code Online (Sandbox Code Playgroud)