macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

decimalNumberBySubtracting:withBehavior:

INDEX>Foundation>NSDecimalNumber

十進数オブジェクトを減算した結果を返します

Objective-C

- (NSDecimalNumber *)decimalNumberBySubtracting:(NSDecimalNumber *)decimalNumber
                                   withBehavior:(id<NSDecimalNumberBehaviors>)behavior

Swift

func decimalNumberBySubtracting(_ decimalNumber: NSDecimalNumber,
                   withBehavior behavior: NSDecimalNumberBehaviors?) -> NSDecimalNumber

編集時のバージョン

OS X 10.11
Swift2.0

解説

十進数オブジェクトを減算した結果を返します。
計算誤差の丸め(四捨五入・切り上げ・切り捨て)はbehaviorを使います。

返り値

Objective-C

( NSDecimalNumber * )

Swift

NSDecimalNumber

編集時のバージョン

OS X 10.11
Swift2.0
十進数オブジェクト

引数

Objective-C

( NSDecimalNumber * )decimalNumber

Swift

_ decimalNumber: NSDecimalNumber

編集時のバージョン

OS X 10.11
Swift2.0
十進数オブジェクト

Objective-C

( id <NSDecimalNumberBehaviors> )behavior

Swift

withBehavior behavior: NSDecimalNumberBehaviors?

丸め方法

編集時のバージョン

OS X 10.11
Swift2.0

クラス

NSDecimalNumber

使用可能

10.0

参照

例文

Objective-C

#import "MyObject.h"

@implementation MyObject

- (IBAction)myAction:(id)sender
{
NSNumberFormatter *numFormat = [[NSNumberFormatter alloc] init] ;
NSDecimalNumber *dNum1 = [[[NSDecimalNumber alloc] autorelease] initWithString:@"3000"];
NSDecimalNumber *dNum2 = [[[NSDecimalNumber alloc] autorelease] initWithString:@"200"];
NSDecimalNumber *dNum = [[NSDecimalNumber alloc] autorelease];

dNum = [dNum1 decimalNumberBySubtracting:dNum2 withBehavior:[NSDecimalNumber defaultBehavior]];

[numFormat setMaximum:dNum];
[numFormat setPositiveFormat:@"#,##0.00"];
[myOutlet setFormatter:numFormat];

NSLog([NSString stringWithFormat:@"%.2f",[[numFormat maximum] doubleValue]]);
}

@end

Swift

    //NSDecimalNumber decimalNumberBySubtracting:withBehavior:
    @IBAction func function016(sender: AnyObject) {
        let dNum1 : NSDecimalNumber =
        NSDecimalNumber(string: "3000")
        let dNum2 : NSDecimalNumber =
        NSDecimalNumber(string: "200")
        let dNum : NSDecimalNumber = dNum1.decimalNumberBySubtracting(dNum2, withBehavior: NSDecimalNumber.defaultBehavior())
        let numFormat : NSNumberFormatter = NSNumberFormatter()
        numFormat.minimum = dNum    //最小値が2800
        numFormat.positiveFormat = "#,##0.00"
        textField.formatter = numFormat
        NSLog("function016")
        commentLabel.stringValue = "←最小値が3000-200=2800(defaultBehavior)"
    }

編集時のバージョン

OS X 10.11
Swift2.0