2015-04-04 53 views
1

我試圖格式化一個數字作爲貨幣。快速格式化貨幣返回無

let formatter = NSNumberFormatter() 
formatter.locale = NSLocale(localeIdentifier: "en_GB") 
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle 

let limit = formatter.numberFromString("12.99") as? NSDecimalNumber 

但是,常數限制返回爲零。奇怪的是,這段代碼直到最近纔開始工作,但不知道可能發生了什麼變化。這個例子看起來好嗎,還是我錯過了什麼?

EDIT

爲了給出上下文中,我試圖解析字符串編號(從輸入元件)爲十進制數,用於存儲作爲貨幣值。我的錯誤出現在設置數字樣式,我正在使用.CurrencyStyle,但應使用.DecimalStyle

回答

1

作爲第一個測試,我試過

println(formatter.stringFromNumber(12.99)) // prints "£12.99" 

然後我試圖

let limit = formatter.numberFromString("£12.99") as? NSDecimalNumber // gives nil 

let limit = formatter.numberFromString("£12.99") // gives 12.99 

let limit = formatter.numberFromString("12.99") // gives nil 

所以貨幣符號是強制性的

+0

感謝您的回答。格式化程序使用了錯誤的numberStyle。 – Kevin 2015-04-04 18:11:55