INDEX>Foundation>NSDecimalNumber
デフォルトの丸め方法をセットします
+ (void)setDefaultBehavior:(id<NSDecimalNumberBehaviors>)behavior
class func setDefaultBehavior(_ behavior: NSDecimalNumberBehaviors)
解説
デフォルトの丸め方法をセットします。
丸めオブジェクト(behavior)はNSDecimalNumberBehaviorsに合っていないといけません。
引数
( id <NSDecimalNumberBehaviors> )behavior
_ behavior: NSDecimalNumberBehaviors
丸め方法
フレームワーク
Foundation
クラス
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
//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