因此,这里的代码:为什么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类中的一个错误。