因此,這裏的代碼:爲什麼10^-65平方的NSDecimalNumber會導致10^126而不是導致下溢異常?
NSDecimalNumber *test=[[NSDecimalNumber alloc] initWithInt:65];
number3=[[NSDecimalNumber one] decimalNumberByDividingBy:[[[NSDecimalNumber alloc] initWithInt:10] decimalNumberByRaisingToPower:test.integerValue]];
number3=[number3 decimalNumberByMultiplyingBy:number3];
我所期望的程序與溢異常終止,但事實並非如此。而且,拿一個NSLog給出的數字是一些很大的數字。如果我將「測試」更改爲64以下的任何值,它會給出正確的輸出(即10 ^( - 2 *測試))。有人知道這裏發生了什麼嗎?我的意思是,這很容易解決,但除非我錯過了某些東西(這很可能),這似乎是NSDecimalNumber類中的一個錯誤。