macOS/iOS API解説

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

目次

setDefaultBehavior:

INDEX>Foundation>NSDecimalNumber

デフォルトの丸め方法をセットします

Objective-C

+ (void)setDefaultBehavior:(id<NSDecimalNumberBehaviors>)behavior

Swift

class func setDefaultBehavior(_ behavior: NSDecimalNumberBehaviors)

解説

デフォルトの丸め方法をセットします。
丸めオブジェクト(behavior)はNSDecimalNumberBehaviorsに合っていないといけません。

返り値

Objective-C

( void )

Swift

なし

引数

Objective-C

( id <NSDecimalNumberBehaviors> )behavior

Swift

_ behavior: NSDecimalNumberBehaviors

丸め方法

クラス

NSDecimalNumber

使用可能

10.0

参照

例文

#import "MyObject.h"

@implementation MyObject

- (IBAction)myAction:(id)sender
{
NSDecimalNumberHandler *dHandler = [NSDecimalNumberHandler 
                            decimalNumberHandlerWithRoundingMode:NSRoundDown
                            scale:5
                            raiseOnExactness:YES
                            raiseOnOverflow:YES
                            raiseOnUnderflow:YES
                            raiseOnDivideByZero:YES
                            ];
                            
NSNumberFormatter *numFormat = [[NSNumberFormatter alloc] init] ;
NSDecimalNumber *dNum1 = [[[NSDecimalNumber alloc] autorelease] initWithString:@"3000.123456"];
NSDecimalNumber *dNum2 = [[[NSDecimalNumber alloc] autorelease] initWithString:@"200.123456"];
NSDecimalNumber *dNum = [[NSDecimalNumber alloc] autorelease];
[NSDecimalNumber setDefaultBehavior:dHandler];
dNum = [dNum1 decimalNumberByAdding:dNum2 withBehavior:[NSDecimalNumber defaultBehavior]];

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

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

}

@end

Swift

    //NSDecimalNumber setDefaultBehavior
    @IBAction func function026(sender: AnyObject) {
        //カスタムの丸め挙動 小数点第二位でRoundPlain
        let behavior : NSDecimalNumberHandler = NSDecimalNumberHandler(roundingMode: NSRoundingMode.RoundPlain, scale: 2, raiseOnExactness: false, raiseOnOverflow: false, raiseOnUnderflow: false, raiseOnDivideByZero: false)
        
        NSDecimalNumber.setDefaultBehavior(behavior)
        
        let dNum1 : NSDecimalNumber =
        NSDecimalNumber(string: "3.0")
        let dNum2 : NSDecimalNumber =
        NSDecimalNumber(string: "0.141295")
        let dNum : NSDecimalNumber = dNum1.decimalNumberByAdding(dNum2, withBehavior: NSDecimalNumber.defaultBehavior())
        let numFormat : NSNumberFormatter = NSNumberFormatter()
        numFormat.minimum = dNum    //最小値が620
        numFormat.positiveFormat = "#,##0.00"
        textField.formatter = numFormat
        NSLog("function026")
        NSLog("%f",dNum.doubleValue)
        //->3.140000
        commentLabel.stringValue = "←最小値が3.14"
    }

編集時のバージョン

OS X 10.11
Swift2.0