改变数字精度

时间:2010-06-18 13:25:30

标签: c++

如何更改数字的精确度,例如:float n = 1.2345并将其存储回变量'n'并将其更改为1.23

4 个答案:

答案 0 :(得分:7)

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

或一行:

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

答案 1 :(得分:6)

#include <cmath>

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

或者如果你需要截断而不是圆形:

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

答案 2 :(得分:3)

看看这个问题:

Rounding Number to 2 Decimal Places in C

但是,在C ++中,如果您需要将数字舍入以用于显示目的,我不会使用printf,而是使用流运算符:

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

答案 3 :(得分:2)

float truncated = static_cast<int>(n * 100) / 100.0f应该有用。