2012-01-01 85 views
2

我知道这已被问了很多次,但我已经诚实地搜索,我仍然有问题,使这项工作。由于我刚刚开始学习和教导自己,我不擅长编码。我查看了开发人员的图书馆以及Google和Google上的所有答案,但我在进行此项工作时遇到问题。我似乎遇到的很多信息都是针对旧版IOS和Xcode的。我需要在小数点后显示数字。例如,如果输出是90.909090,我需要它显示90.90或90.91。这工作,但输出只显示0.00,它不读取浮动。我知道这个输出只是在weightkg文本字段中显示NSString stringWithFormat:@“%。2f”。我有问题引用浮点数以这种格式显示。Xcode 4.2小数位

- (IBAction)calculateweight:(id)sender { 
    float wl = ([weightlbs.text floatValue]); 
    float wt = (wl/2.2); 

    weightkg.text = [[NSNumber numberWithFloat:wt] stringValue]; 
[weightkg setText:[NSString stringWithFormat:@"%.2f"]]; 

} 
+2

您可能想了解“Xcode”和“Objective-C”之间的区别...... – 2012-01-01 01:56:23

+0

此功能基本上是从C中提取的。您可以通过从命令中运行man 3 printf来阅读有关格式化字符串线; 'stringWithFormat:'使用相同的格式(加上一对)。 – 2012-01-01 02:13:23

回答

8

您没有将float值传递给stringWithFormat,请尝试此操作。

- (IBAction)calculateweight:(id)sender { 
    float wl = ([weightlbs.text floatValue]); 
    float wt = (wl/2.2); 

[weightkg setText:[NSString stringWithFormat:@"%.2f", wt]]; 

} 
+0

谢谢,这完全像我需要的那样工作。我曾尝试过这样的事情,但我仍然尝试使用NSNumber numberWithFloat而不是使用NSString stringWithFormat并获取错误。 – Jasonwilliams10 2012-01-02 16:25:53

4

您应该使用:

float wt = ...; 
weightkg.text = [NSString stringWithFormat:@"%.2f", wt]; 

也就是说,你必须在变量值传递给您的通话stringWithFormat