いくつかの奇妙な理由で、私は次からNSDecimalNumberOverflowExceptionを受け取る:NSDecimalNumberのnotANumberのドキュメントを引数としてはNaNを受ける任意の算術演算は、NaNを返しますと述べているのでNSDecimalNumber:2つのNaNを合計するとオーバーフローが発生しますか?
NSDecimalNumber *a = [NSDecimalNumber notANumber];
NSDecimalNumber *b = [NSDecimalNumber notANumber];
NSLog(@"%@",[a decimalNumberByAdding:b]);
これは私には予想外のようです...
は、私はありがたいことに1 + 1はまだ2何が起こっている上の任意のアイデアを与える... 1 +はNaNとNaNの+ 1に同じエラーが発生しますか?
*シグナリング* NaNとa * quiet * NaNを作成している可能性はありますか?これらの概念はIEEE-754に存在し、NSDecimalNumberについてはわかりません。 '[decimalNumberByAdding:x]'を実行するとどうなりますか? 'x'はNSDecimalNumberで作成された' 1.0/0'バイトですか? –
ドキュメントの言い回しを考えれば、静かなNaNが作成されると思いますが、シグナリングNaNの考え方はここでより理にかなっています。 1.0/0については、除算例外が発生します。 NSDecimalNumberの算術が私のために行うことを期待するのではなく、明示的にこれらの例外を明示的に考慮する必要があるようです。 – Karl
あなたのコメントを回答としてお伝えください。私はそれに印をつけます。 – Karl