hol*_*hol 14 iphone objective-c nsnumber nsnumberformatter
我有一个界面给我这样的数字0000000012345,78
所以我想出了如何用它们制作一个数字.但我需要用这个数字计算,我实际需要的是一个十进制数.
NSNumberFormatter *fmtn = [[NSNumberFormatter alloc] init];
[fmtn setFormatterBehavior:NSNumberFormatterBehavior10_4];
[fmtn setNumberStyle:NSNumberFormatterDecimalStyle];
[fmtn setDecimalSeparator:@","];
NSNumber *test = [fmtn numberFromString:@"0000000012345,78"];
Run Code Online (Sandbox Code Playgroud)
如何将NSNumber设为NSDecimalNumber?
编辑:这是我最终得到的代码:
NSDictionary *localeDict = [NSDictionary dictionaryWithObject:@"," forKey:@"NSDecimalSeparator"];
NSDecimalNumber *test = [[NSDecimalNumber alloc] initWithString:@"00000000012345,78" locale:localeDict];
Run Code Online (Sandbox Code Playgroud)
如何将语言环境字典放在一起不能被描述为"记录良好",并且我花了一些谷歌搜索来找到一个例子.
这个也有效:
NSLocale *deLoc = [[NSLocale alloc] initWithLocaleIdentifier:@"de"];
NSDecimalNumber *testd = [NSDecimalNumber decimalNumberWithString:@"00000000012345,78" locale:deLoc];
Run Code Online (Sandbox Code Playgroud)
aer*_*a17 39
要转换NSNumber为NSDecimalNumber,使用此代码完全避免使用字符表示会更有意义吗?
NSNumber* source = ...;
NSDecimalNumber* result = [NSDecimalNumber decimalNumberWithDecimal:[source decimalValue]];
Run Code Online (Sandbox Code Playgroud)
[NSDecimalNumber decimalNumberWithString:@"0000000012345,78"];
Run Code Online (Sandbox Code Playgroud)
不过,请谨慎对待语言环境;如果您在区域格式未设置为法语的 iPhone 上运行该代码,它可能不会返回您期望的结果。所以你可能想使用:
+ (NSDecimalNumber *)decimalNumberWithString:(NSString *)numericString locale:(NSDictionary *)locale
Run Code Online (Sandbox Code Playgroud)
反而。
| 归档时间: |
|
| 查看次数: |
8645 次 |
| 最近记录: |