2012-02-10 65 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