Cocoa API解説(macOS/iOS)

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

目次

initWithString:locale:

INDEX>Foundation>NSDecimalNumber

十進数オブジェクトをローカライズされた文字から初期化して返します

Objective-C

- (instancetype)initWithString:(NSString *)numericString
                        locale:(id)locale

Swift

convenience init(string numberValue: String?,
          locale locale: AnyObject?)

解説

十進数オブジェクトを文字から初期化して返します。
3e5(=300000)のような表記も使えます。
地域によっては桁区切り記号を","の代わりに"."を使うなどの場合があります。

【location】数字の中に含まれる文字、記号の辞書
● NSDecimalSeparator 小数点
● NSThousandsSeparator 桁区切り

返り値

instancetype

Swift

NSDecimalNumber

十進数オブジェクト

引数

Objective-C

( NSString * )numberValue

Swift

numberValue: String?

数字を表す文字列

Objective-C

( NSDictionary * )locale

Swift

locale: AnyObject?

ローカライズ

クラス

NSDecimalNumber

使用可能

0S X10.0-

例文

Objective-C

#import "MyObject.h"

@implementation MyObject

- (IBAction)myAction:(id)sender
{
NSDictionary *dic= [[NSDictionary alloc] initWithObjectsAndKeys:
                 @",",@"NSDecimalSeparator",//小数点区切り
                		nil];
                
NSNumberFormatter *numFormat = [[[NSNumberFormatter alloc] init] autorelease];
NSDecimalNumber *dNum = [[[NSDecimalNumber alloc] initWithString:@"-2,5006E3" locale:dic] autorelease];

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

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

@end

Swift

//NSDecimalNumber initWithString:locale:
    @IBAction func function008(sender: AnyObject) {
        let localeInfo: Dictionary = [
            "NSDecimalSeparator": "/",  //小数点
            "NSThousandsSeparator":"*"  //桁区切り
            ]
        let dNum : NSDecimalNumber =
        NSDecimalNumber(string: "3000/00", locale: localeInfo)
        let numFormat : NSNumberFormatter = NSNumberFormatter()
        numFormat.minimum = dNum    //最小値が3000
        numFormat.positiveFormat = "#,##0.00"
        textField.formatter = numFormat
        NSLog("function008")
    }