2
我是Obj-C的noob,但今天我遇到了一些我自己用NSNumber和intValue無法理解的東西。NSNumber和intValue:怪異行爲
我有這樣的例子代碼:
double quota = 203/100.0;
NSLog(@"%f %f %@ %d",
quota,
quota*100.0,
[NSNumber numberWithDouble:(quota*100.0)],
[ [NSNumber numberWithDouble:(quota*100.0)] intValue]
);
它打印輸出:
2.030000 203.000000 203 202
請有人可以幫助我瞭解爲什麼最後的intValue變成了202 203? 我覺得我錯過了一些非常明顯而重要的東西。
TIA
感謝您的回答喬,這似乎真的很奇怪,因爲我期望intValue返回最接近的int值。畢竟蘋果引用告訴我返回值是「接收者的值爲int,根據需要進行轉換」。我希望有人能澄清這個概念。 – Billo 2011-01-26 15:37:25