如何更改数字的精确度,例如:float n = 1.2345
并将其存储回变量'n'并将其更改为1.23
?
答案 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
应该有用。