我有一个界面给我这样的数字 0000000012345,78
所以我想出了如何从中提取数字。但是我需要用那个数字来计算,而我真正需要的是一个十进制数。
NSNumberFormatter *fmtn = [[NSNumberFormatter alloc] init];
[fmtn setFormatterBehavior:NSNumberFormatterBehavior10_4];
[fmtn setNumberStyle:NSNumberFormatterDecimalStyle];
[fmtn setDecimalSeparator:@","];
NSNumber *test = [fmtn numberFromString:@"0000000012345,78"];
如何让我的 NSNumber 变成 NSDecimalNumber?
编辑:这是我最终得到的代码:
NSDictionary *localeDict = [NSDictionary dictionaryWithObject:@"," forKey:@"NSDecimalSeparator"];
NSDecimalNumber *test = [[NSDecimalNumber alloc] initWithString:@"00000000012345,78" locale:localeDict];
如何组合语言环境字典不能被描述为“有据可查”,我花了一些谷歌搜索才找到一个例子。
这个也有效:
NSLocale *deLoc = [[NSLocale alloc] initWithLocaleIdentifier:@"de"];
NSDecimalNumber *testd = [NSDecimalNumber decimalNumberWithString:@"00000000012345,78" locale:deLoc];
最佳答案
要将 NSNumber
转换为 NSDecimalNumber
,用这段代码完全避免字符表示不是更有意义吗?
NSNumber* source = ...;
NSDecimalNumber* result = [NSDecimalNumber decimalNumberWithDecimal:[source decimalValue]];
关于iphone - 如何将带数字的字符串转换为逗号不是小数点的 NSDecimalNumber?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066083/