2010-10-22 21 views
3

我已经找到了如何定位与用户当前货币设置一个字符串,这个优秀的提问/回答...... localize-currency-for-iphoneiPhone,我如何删除本地化的货币格式并产生双重?

这是所使用的代码...

NSDecimalNumber *someAmount = [NSDecimalNumber decimalNumberWithString:@"5.00"]; 
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init]; 
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
NSLog(@"%@", [currencyFormatter stringFromNumber:someAmount]); 

不过,我需要将其转换为双精度值,以便将其存储到我的数据库中?

编辑:这应该读我需要转换这回字符串没有货币格式化,然后将其转换为双精度。

+0

使用双货币是不是一个好主意,因为来回转换基座10和基座2之间的能引起所谓的“基转换误差的精度损失”。最好处理基数为10的字符串中的十进制数字,而不是转换为基数为2的双精度数字,最好将基数为10的字符串转换为基数为10的NSDecimal数字。这样做可以节省数字的精确度,并防止为一分钱打印客户报表等错误。 – Kaydell 2017-11-19 02:36:03

回答

3

采取串并调用反向方法:

NSNumber* number = [currencyFormatter numberFromString:string];