使用NSNumberFormatter而不使用字符串的舍入数字

时间:2010-10-11 23:09:57

标签: iphone objective-c rounding nsnumberformatter

这看起来很简单,但我看不出NSNumberFormatter有一个奇怪的功能。我有一个号码,比方说4.1。我想把它舍入到5.我想如果我使用NSNumberFormatter并将roundingMode设置为NSNumberFormatterRoundUp我会得到所需的结果。但是我现在似乎能够将我的数字变为圆形的唯一方法是stringFromNumber或numberFromString。似乎很奇怪我只是不能保留它。

我知道我可以将字符串转换为数字,但这似乎是浪费。想要知道是否有不同的方式(如果数字为4.1,则round()不会向上舍入)或者如果有一种方法我错过了通过类ref参考。

干杯

2 个答案:

答案 0 :(得分:5)

您可以使用标准c函数ceil

CGFloat number = 4.1;
CGFloat roundedUp = ceil( number ); // Will be 5.0

答案 1 :(得分:2)

您可以在Objective C中使用本机C函数。您所追求的是ceil()。如果您已有NSNumber,则可以使用floatValue等对象方法获取原生C float

float num = [ns_number floatValue];
num = ceil(num);