2012-02-10 60 views
0

我有一個標籤,我們稱之爲currencyFormattedLabel,它的價值是在另一種方法中作爲貨幣格式化(使用currencyFormatter)。如何獲取貨幣格式標籤的floatValue金額?

現在,我想使用該標籤中的等效數字。但是,當我去獲取數字時,我只能得到0.00的值。

也許這將有助於解釋:

float x = [currencyFormattedLabel.text floatValue]; 
NSLog(@"x = %.2f", x); 

所以,如果currencyFormattedLabel爲$ 2.00,此方法始終結束返回:X = 0.00 我要的是它返回X = 2.00。

有沒有辦法讓我currencyFormattedLabel並獲得它的數字值?

感謝您的幫助!

+1

currencyFormattedLabel.text返回什麼值?這是你期望的嗎? – bneely 2012-02-10 19:05:54

+0

提示:NSLog(@「text =%@」,currencyFormattedLabel.text); – bneely 2012-02-10 19:06:20

+1

另外,[不要使用浮動金錢](http://stackoverflow.com/questions/6333711/objective-c-issue-with-rounding-float/6334471#6334471)。你真的應該得到一個代表美分的整數值。 – 2012-02-10 19:29:29

回答

0

您還可以使用:

float x = [[currencyFormattedTextLabel.text substringFromIndex:1] floatValue]; 

如果你知道數量總是用一個美元符號來predceeded。

+0

太棒了!傑米,你太棒了! TY! – Jupiter869 2012-02-10 20:19:14

1

NSString中的美元符號正在拋棄。使用NSScanner你會有更好的運氣。

NSScanner *scanner = [NSScanner scannerWithString:currencyFormattedLabel.text]; 
float x; 
[scanner scanFloat: &x]; 
NSLog(@"x = %.2f", x); 
+0

非常感謝你的建議! NSScanner是我以前從未使用過的東西,當我將它添加到我的代碼中時,無論我最初的currencyFormattedLabel中的內容是-2.00,我都能得到答案。在掃描儀scanFLoat:&x];命令中執行什麼操作?我懷疑這可能是它仍然無法使用的原因。 – Jupiter869 2012-02-10 20:12:56

+0

&只是用於將參考(或地址/指針)傳遞給變量的語法。我懷疑這是造成這個問題的原因。我會記錄NSString,以確保你擁有你認爲你擁有的東西。 NSLog(@「text =%@」,currencyFormattedLabel.text); – picciano 2012-02-10 21:01:48

+0

Thx !!將def試試這個。希望它能工作! – Jupiter869 2012-02-10 21:17:08