NSNumber格式化(舍入到1000的位置)

时间:2011-06-01 22:13:56

标签: objective-c

我目前有一系列NSNumber对象,其值介于0到500,000之间。它们是随机生成的值,带有许多小数位。

如何打印这些值,但将它们四舍五入到最接近的1000?例如32143.8472将舍入到32000.为简单起见,我们假设我希望它们在NSLog中...

例如

NSLog(@"The number is: %@", WHATGOESHERE??)

1 个答案:

答案 0 :(得分:11)

NSNumber对象适合存储值,对于数值运算,应使用普通数值类型(例如int)

请尝试以下代码:

int rounded = 1000*(([number intValue]+500)/1000);

那里会发生什么:

  1. [number intValue]
    这是我们号码的整数部分

  2. 添加500并除以1000 - 在我们的数字中获取最接近的数千

  3. 乘以1000 - 补偿之前的分数以获得实际四舍五入的数字

  4. 如果您愿意,请记录下来:

    NSLog(@"The number is: %d", rounded)