相关疑难解决方法(0)

46
推荐指数
2
解决办法
7万
查看次数

Objective-C Float Rounding

我怎样才能将浮点数舍入到Objective-C中最接近的整数:

例:

float f = 45.698f;
int rounded = _______;
NSLog(@"the rounded float is %i",rounded);
Run Code Online (Sandbox Code Playgroud)

应打印"圆形浮子是46"

iphone floating-point objective-c rounding ios

40
推荐指数
4
解决办法
5万
查看次数

是否有任何简单的方法可以在目标c中使用一位数字舍入浮点数?

是.你是对的.当然这是一个重复的问题.在提出我的问题之前,请继续阅读以下内容.

我想舍入一个浮点值,即

56.6748939 to 56.7
56.45678 to 56.5
56.234589 to 56.2
Run Code Online (Sandbox Code Playgroud)

实际上它可以是任意数量的小数精度.但我想把它四舍五入到最接近的值.(如果大于或等于5,则向上舍入,如果不是,则向下舍入).

我可以用下面的代码来做到这一点.

float value = 56.68899
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc]init];
[numberFormatter setMaximumFractionDigits:1];
[numberFormatter setRoundingMode:NSNumberFormatterRoundUp];

NSString *roundedString = [numberFormatter stringFromNumber:[NSNumber numberWithFloat:value]];
NSNumber *roundedNumber = [NSNumber numberFromString:roundedString];
float roundedValue = [roundedNumber floatValue];
Run Code Online (Sandbox Code Playgroud)

以上代码看起来像一个漫长的过程.我有几个数字可以完善.所以这个过程很难将浮点值转换为NSNumber和NSString以及NSNumber和float.

有没有其他简单的方法来实现我的要求?

我仍然对上面的代码有疑问.它说roundUp.所以当谈到roundDown它时,它会起作用吗?

floating-point objective-c rounding nsnumberformatter ios

0
推荐指数
1
解决办法
3451
查看次数