我一直在建立一个在全球范围内运作的货币清算功能。 但是,一个错误已经发现并且不确定原因。Obj-C,货币价值到可行号码,问题
+(double)removeFormatPrice:(NSString *)strPrice {
NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init]
autorelease];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSNumber* number = [currencyFormatter numberFromString:strPrice];
NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init]
autorelease];
NSMutableString *mstring = [NSMutableString stringWithString:strPrice];
NSRange wholeShebang = NSMakeRange(0, [mstring length]);
[mstring replaceOccurrencesOfString: [formatter decimalSeparator]
withString: @"."
options: 0
range: wholeShebang];
double newPrice = [mstring doubleValue];
if (number == nil) {
return newPrice;
} else {
return [number doubleValue];
}
}
如果我通过在1,000.00然后它取代了点(期间/句号),它应该只是做到这一点,但它也取代了逗号。 Newprice出来为1。我的继承人完整的调试......
我实在看不出有什么最后的你想得到的结果。 1,000.01的预期值是多少? 500.25? – sch 2012-02-14 08:54:32
我通过1000.00(英国数字格式),我应该得到1000.00或1000,目前我得到1 – Jules 2012-02-14 09:08:25