Is there a way to do this without using the stream? For example, something like this:
double a = 6.352356663353535;
double b = a.precision(5);
I've revised the code taking into account @john, @Konrad and @KennyTM's suggestions. I've check that it works with negative numbers.
#include
#include
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);
}
Outputs
6.35236