1

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

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

干杯

4

2 回答 2

5

您可以使用标准的 c 函数ceil

CGFloat number = 4.1;
CGFloat roundedUp = ceil( number ); // Will be 5.0
于 2010-10-11T23:15:02.987 回答
2

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

float num = [ns_number floatValue];
num = ceil(num);
于 2010-10-11T23:15:41.457 回答