2013-03-24 39 views
-2

這應該很簡單,但我卡住了。當我在任何一個文本字段中輸入一個小數時,標籤中的總數就會增加。我希望標籤將總數顯示到兩個地方。這是我到目前爲止有:標籤中的小數點

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController { 

    IBOutlet UITextField *value1; 
    IBOutlet UITextField *value2; 

    IBOutlet UILabel *label; 

} 

-(IBAction)calculate:(id)sender; 

@end 


@implementation ViewController 

-(IBAction)calculate:(id)sender { 

    float x = ([value1.text floatValue]); 
    float y = x*([value2.text floatValue]); 

    label.text = [[NSString alloc] initWithFormat:@"%2.f", y]; 
} 

回答

2

你有你的標籤設置爲:

label.text = [[NSString alloc] initWithFormat:@"%2.f", y]; 

你想要的是:

label.text = [[NSString alloc] initWithFormat:@"%.2f", y]; 

你的十進制是對的2違逆這使得它輪到0位而不是2.

+0

謝謝Jsdodgers,我可以再問一個問題嗎?假設我想將輸入放入value1,標籤中的輸出將自動乘以.25。因此,這將節省用戶輸入值2。再次感謝Larry – Beginner 2013-03-24 05:56:46

+0

你需要做一些類似'[value1 addTarget:self action:@selector(actionToPerform :) forControlEvents:UIControlEventAllEditingEvents];'然後在你的'actionToPerform'方法中,將value2設置爲value1的值* .25 – Jsdodgers 2013-03-24 06:03:59

+0

Hey Jsdodgers感謝您的幫助。但我想我正在努力做到這一點。我想我想擺脫第二個文本字段,只需將輸入到第一個文本字段(value1)的任何輸入乘以.25,然後輸入到標籤中。然後,標籤會顯示,可以說總數的四分之一。再一次感謝你,拉里 – Beginner 2013-03-24 14:56:14

-1

它會將您的價值四捨五入到只有變化分數si 'f'之前的結果

[lbl setText:[NSString stringWithFormat:@"%.2f",10.21234]]; 
+0

我的朋友的工作完美。 – 2013-03-24 06:32:56