2010-12-01 50 views
0

我收到以下輸出,我不知道爲什麼!?由此產生的數字是1.問題與NSNumber(雙數值是1)

我認爲double可以處理大量數字嗎?我確定我不能正確理解某些東西!任何幫助將不勝感激。

(gdb) print (double) [[NSNumber numberWithDouble:9606977671929857.0] doubleValue] 
$13 = 9606977671929856 

非常感謝!

回答

4

您已經耗盡了雙精度浮點類型的精度,該類型只能用十進制表示法計算大約14位有效數字的空間。

+1

如果您需要更高的精度,請使用'NSDecimalNumber`。 – 2010-12-01 21:01:45