2010-10-22 15 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];