我有一个具有更多十进制数字的浮点数,例如:
float fRes = 10.0 / 3.0;
实际上fRes值是3.3333333333333 它可以设置为例如2个十进制数字:
float fRes = 10.0 / 3.0;
// fRes is 3.333333333333333333333333
float fResOk = FuncRound( fRes, 2 );
// fResOk is 3.33
提前致谢
答案 0 :(得分:58)
我不知道你在哪里使用这个四舍五入的数字,但是你应该只在将值显示给用户时舍入你的值,有基于C的格式字符串方法来舍入浮点数例如
[NSString stringWithFormat:@"%.2f", value];
正如您可能已经读过的那样,浮点数是实数的近似值,因此执行fResOk = roundf( fRes*100.0)/100.0;
可能不会给出3.33但是数字与浮点数到3.33时的数字一样接近。
答案 1 :(得分:28)
假设您正在寻找正确的函数来舍入到一定数量的数字,您可能会发现最简单的方法是执行以下操作:
fResOk = roundf( fRes*100.0)/100.0;
这会将值乘以100
(给出2位有效数字),对值进行四舍五入,然后将其缩小回原来开始的幅度。