为什么[NSNumber numberWithInt:INFINITY]返回0?

时间:2015-10-03 21:15:00

标签: objective-c

我试图将INFINITY宏用作整数但由于某种原因它返回0.

for (int i = 0 ; i<100; i++) {
    NSLog(@"%@",[NSNumber numberWithInt:INFINITY]); //return -/+ max int
}

for (int i = 0 ; i<100; i++) {
    NSLog(@"%@",[NSNumber numberWithFloat:INFINITY]); //return "inf"
}

INFINITY的正确使用方法是什么?我认为它会返回一个最大整数或浮点值,而-INFINITY会返回一个负的最小整数或浮点值但绝对不是0.为什么它会返回0?

1 个答案:

答案 0 :(得分:1)

如评论中所述:

INFINITY是一个特殊值,可以用浮点或双浮点格式表示。

它不能转换为整数,因为整数不能表示无穷大。

numberWithInt已被编写,因此它返回零,因为它在int中的无穷大中无法理解。