2012-02-10 12 views
0

私はLabelを持っています。その値をcurrencyFormattedLabelと呼びましょう。その値は別のメソッドでcurrency(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

+0

ヒント:NSLog(@ "text =%@"、currencyFormattedLabel.text); – bneely

+1

また、[お金のために浮動小数点を使用しないでください](http://stackoverflow.com/questions/6333711/objective-c-issue-with-rounding-float/6334471#6334471)。あなたは本当に代わりにセントを表現する整数値を得ているはずです。 –

答えて

0

また、使用することができます

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

あなたは数は常にドル記号でpredceededことを知っていた場合。

+0

素晴らしい!ジェイミー、お元気ですね! TY !! – Jupiter869

1

NSStringのドル記号が物事を投げ捨てています。あなたはNSScannerを使用してより良い運を持っています。

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

この提案をありがとう! NSScannerはこれまで使用したことのないものです。コードに追加すると、私の元のcurrencyFormattedLabelに何があっても答えは-2.00になります。 [scanner scanFLoat:&x];コマンドの&doは何をしますか?私はそれがまだ動作していないの原因かもしれないと思う。 – Jupiter869

+0

&は、参照(またはアドレス/ポインタ)を変数に渡すために使用される構文です。それが問題の原因だとは思わない。私はあなたがあなたが持っていると思っていることを絶対に確かめるためにNSStringを記録するでしょう。 NSLog(@ "text =%@"、currencyFormattedLabel.text); – picciano

+0

Thx !!デフがこれを試してくれますか?それはうまくいきたいです! – Jupiter869

関連する問題