将NSUInteger除以2会导致整数吗?

时间:2016-01-19 04:22:50

标签: objective-c nsarray

我想在Objective-C中这样做:

self.nsarray.count/2

如果计数等于5,结果将是5/2 = 2.5或5/2 = 2?

我是NS记录答案,它只显示我2.我不确定这是否是实际答案或者是2,因为我被迫使用%u格式来记录答案。还请解释这个结果的“原因”。

1 个答案:

答案 0 :(得分:0)

在Objective-C中使用两个整数的除法总是产生一个整数,在你的情况下它将是NSUInteger,在这种情况下2是一个有效的结果。要获得具有浮点数的结果,至少应将一个操作数键入float,或者至少将其中一个输出到float,所以这里有一些选项:

// Second part of division is float, so result is float as well
float result = self.array.count/2.

// First part of division is float, so result is float as well
float result2 = (float)self.array.count/2 // or you can type ((float)self.array.count)/2 for more clearance

请注意,将结果转换为float对您的案例无效,例如在(float) (5/2)中,结果将是float(2.0)类型的整数,因为您只会转换{ {1}}至NSIntger

浮点数通常以NSLog格式格式化为%f或%g