1

オブジェクトの配列があり、各オブジェクトには NSDecimalNumber があり、「サイズ」と呼びます

配列内の各オブジェクトについて、rSize と呼ばれる推奨サイズを差し引きます。

次に、結果の NSDecimalNumber に入り、デルタの値を取得したいのですが、結果が正か負かは気にしません。

私は NSDecimal 構造体を返す decimalNumber メソッドを使用すると思うので、問題は、構造体内のどのプロパティがデルタの値を与えるかということです。

言い換えると、NSDecimal は NSDecimalNumber を表しますが、NSDecimal 構造体のどのプロパティが値を保持しているのでしょうか?

どうもありがとうロブ

4

1 に答える 1

1

あなたの「デルタ」は、「rSize」とアイテムの差の絶対値のようです。その場合、減算 ( item – rSize) を実行し、 内で完全に負の場合は -1 を掛けることができNSDecimalNumberます。

NSDecimalNumber *negativeOne = [NSDecimalNumber decimalNumberWithMantissa:1 
                                                                 exponent:0
                                                               isNegative:YES];
NSDecimalNumber *delta = [item decimalNumberBySubtracting:rSize];
if ([delta compare:[NSDecimalNumber zero]] == NSOrderedAscending) {
    delta = [delta decimalNumberByMultiplyingBy:negativeOne];
}

次に-compare:、結果のデルタ オブジェクトでセレクターを使用して、オブジェクトの配列を並べ替えます。

于 2013-04-15T11:53:50.283 に答える