iphone - 如何将带数字的字符串转换为逗号不是小数点的 NSDecimalNumber?

标签 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"];

如何让我的 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/

相关文章:

ios swift - 键盘(掩盖文本字段等)和其他一些小部件的问题

iphone - 左右并排放置两个 UILabels,而不知道左标签中文本的字符串长度

ios - 使用自定义 NSURLProtocol 时 WebView 无法处理响应

ios - 底部 2 行未在我的 tableview 中注册触摸

objective-c - NSUrlConnection 的 iOS 错误 URL

objective-c - 解析套件构建项目问题

iphone - NSNumber、设置和检索

ios - 使用 sqlite3_column_text() 获取整数值

iphone - iOS 5 NSNumber 错误

iphone - 如何在程序重新运行时递增整数并保存以供使用?