cpx
cpx

Reputation: 17557

Changing number precision

How would you change the precision of a number for example: float n = 1.2345 and store it back to the variable 'n' with changing it to 1.23 ?

Upvotes: 3

Views: 3506

Answers (4)

Paul R
Paul R

Reputation: 212929

#include <cmath>

n = roundf(n * 100.0f) / 100.0f;

or if you need to truncate rather than round:

n = truncf(n * 100.0f) / 100.0f;

Upvotes: 6

Bill Carey
Bill Carey

Reputation: 1415

float truncated = static_cast<int>(n * 100) / 100.0f ought to work.

Upvotes: 2

J&#233;r&#244;me
J&#233;r&#244;me

Reputation: 27027

Have a look at this question :

Rounding Number to 2 Decimal Places in C

However, in C++, if you need to round a number for display purpose, I wouldn't use printf, but use the stream operators :

using namespace std;
cout << setiosflags(ios::fixed) << setprecision(2);
cout << n;

Upvotes: 3

float n = 1.2345;
int scaled = n * 100
n = static_cast<float>(scaled)/100.0;

or in one line:

n = static_cast<float>( static_cast<int>(n*100) ) / 100;

Upvotes: 7

Related Questions