Cocoa API解説(macOS/iOS)

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。

目次

decimalNumberHandlerWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero:

INDEX>Foundation>NSDecimalNumberHandler

カスタマイズされた十進数オブジェクトの計算の動作を作って返します
+(id)decimalNumberHandlerWithRoundingMode:(NSRoundingMode)roundingMode:
                 scale:(short)scale:
                 raiseOnExactness:(BOOL)raiseOnExactness:
                 raiseOnOverflow:(BOOL)raiseOnOverflow:
                 raiseOnUnderflow:(BOOL)raiseOnUnderflow:
                 raiseOnDivideByZero:(BOOL)raiseOnDivideByZero:

解説

カスタマイズされた十進数オブジェクトの計算の動作を作って返します。
【NSRoundingMode】丸めモード
● NSRoundPlain
● NSRoundDown 切り下げ
● NSRoundUp 切り上げ

返り値

( id )

十進数ハンドラ

引数

( NSRoundingMode )roundingMode

丸めモード

( short )scale

丸めた後の桁数

( BOOL )raiseOnExactness

精度

( BOOL )raiseOnOverflow

オーバーフロー

( BOOL )raiseOnUnderflow

アンダーフロー

( BOOL )raiseOnDivideByZero

クラス

NSDecimalNumberHandler

Class Methods

使用可能

10.0

参照

例文

#pragma mark +decimalNumberHandlerWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero:
-(void)method001
{
    NSDecimalNumber *dNum1 = [[NSDecimalNumber alloc]  initWithString:@"3.1415926535897932384626433832795028841971693993751058209749445923078164"];
    NSDecimalNumber *dNum = [NSDecimalNumber alloc] ;
    
    NSDecimalNumberHandler* roundingBehavior =    [NSDecimalNumberHandler
                                                   decimalNumberHandlerWithRoundingMode:NSRoundPlain
                                                   scale:4
                                                   raiseOnExactness:NO
                                                   raiseOnOverflow:NO 
                                                   raiseOnUnderflow:NO
                                                   raiseOnDivideByZero:NO];
    
    
    dNum = [dNum1 decimalNumberByRoundingAccordingToBehavior:roundingBehavior];
    
    NSLog(@"%s %f",__FUNCTION__,[dNum doubleValue]);
    //-[OOOAppDelegate method001] 3.141600
}