iOS围绕浮动

ghi*_*boz 20 floating-point objective-c rounding ios

我有一个具有更多十进制数字的浮点数,例如:

float fRes = 10.0 / 3.0;
Run Code Online (Sandbox Code Playgroud)

实际上fRes值是3.3333333333333它可能设置为例如2个十进制数字:

float fRes = 10.0 / 3.0;
// fRes is 3.333333333333333333333333
float fResOk = FuncRound( fRes, 2 );
// fResOk is 3.33
Run Code Online (Sandbox Code Playgroud)

提前致谢

Nat*_*Day 58

我不知道你在哪里使用这个四舍五入的数字,但是你应该只在将值显示给用户时舍入你的值,有基于C的格式字符串方法来舍入浮点数例如

[NSString stringWithFormat:@"%.2f", value];
Run Code Online (Sandbox Code Playgroud)

正如您可能已经读过的那样,浮点数是实数的近似值,所以这样做fResOk = roundf( fRes*100.0)/100.0;可能不会给你3.33但是数字与浮点数到3.33的距离一样接近.


gai*_*ige 30

假设您正在寻找正确的函数来舍入到一定数量的数字,您可能会发现最简单的做法如下:

fResOk = roundf( fRes*100.0)/100.0;
Run Code Online (Sandbox Code Playgroud)

这会将值乘以100(给出2位有效数字),对值进行四舍五入,然后将其减小到最初开始时的幅度.