我有一個貨幣符號在一個文本框中爲例如盧比10,500.50 ,我想在計算中使用它作爲10500 * 5。 我如何使用這個。當我嘗試將其轉換爲雙精度值時,則返回0.00。請建議。如何使用currencyStyle數字作爲雙倍數值iphone
感謝
我有一個貨幣符號在一個文本框中爲例如盧比10,500.50 ,我想在計算中使用它作爲10500 * 5。 我如何使用這個。當我嘗試將其轉換爲雙精度值時,則返回0.00。請建議。如何使用currencyStyle數字作爲雙倍數值iphone
感謝
如果你已經使用了NSNumberFormatter格式化文本字符串,您可以使用相同的格式解析文本字符串回一個數字。
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSNumber *rupees = [NSNUmber numberWithFloat:10500.50];
NSString *formattedRupees = [formatter stringFromNumber:rupees];
NSNumber *rupeesFromString = [formatter numberFromString:formattedRupees];
[formatter release];
如果您不使用NSNumberFormatter,則可以嘗試使用NSScanner手動解析字符串。
小心浮數!
使用NSNumber *rupees = [NSNUmber numberWithFloat:10500.50];
可能會導致轉換中出現精確問題。該「10500.50f」號可以工作,但如果你嘗試像25.63f,這可能會發生:
rupees = 25.629999
這就是爲什麼使用貨幣和雙精度浮點數,不推薦。
移動到你的問題:
你可以做這樣的事情:
NSString *string = @"Rs 10,500.50";
string = [string stringByReplacingOccurrencesOfString:@"," withString:@""];
string = [string stringByReplacingOccurrencesOfString:@"Rs " withString:@""];
NSArray *valueArray = [string componentsSeparatedByString:@"."];
NSInteger firstNumber = [[valueArray firstObject] intValue];
NSInteger secondNumber = [[valueArray lastObject] intValue];
然後你就可以使用這兩個值(firstNumber
和secondNumber
)
對不起,遲到的答覆。但我想轉換10,500.00到10500.00。所以我可以在計算中使用。 plz建議我儘快。 thx – 2011-04-28 12:00:18
NSNumber * rupeesFromString = [formatter numberFromString:formattedRupees];從上面。 – 2011-04-28 13:43:20