2011-11-08 18 views

答えて

1

あなたの質問は少し不明であるたい - あなたはUITextFieldにテキストを設定しようとしていますか?あなたは試してみました:

[myTextField setText:[NSString stringWithFormat:@"%.2f", myFloat]]; 

myFloatがあなたの浮動小数点変数である

。文字列内の %.2fステートメントは、小数点以下2桁まで myFloatを出力します。

希望はこれです。

1

ユーザーがテキストフィールドにテキストを入力できるようにして小数点を挿入する場合は、テキストフィールドにUIControlEventEditingChangedイベントをキャッチしてテキストを再処理する必要があります。例えば

[textField addTarget:self action:@selector(reprocessTextFieldText:) forControlEvents:UIControlEventEditingChanged]; 

... 


-(void)reprocessTextFieldText:(UITextField *)sender 
{ 
    // enforce rules on sender.text here. 
} 

あなたが明示的に数字以外を入力するユーザの能力を奪うようにしたい場合は

は、また、あなたの UITextFieldに代理人を追加し、適切 textField:shouldChangeCharactersInRange:replacementString:を実装したい場合があります。

0

この

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
enteredtext = @"0"; 
// Do any additional setup after loading the view from its nib. 
} 

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
if([string isEqualToString:@"0.00"]) 
    enteredtext = @"0"; 
if(range.length==1) 
{ 
    if(enteredtext.length>1) 
     enteredtext = [[enteredtext substringWithRange:NSMakeRange(0,enteredtext.length-1)]retain]; 
} 
else 
{ 
    if(enteredtext.length<9) 
     enteredtext = [[NSString stringWithFormat:@"%@%@",enteredtext,string]retain];; 
} 
double amountindecimal = [enteredtext floatValue]; 
double res=amountindecimal * pow(10, -2); 
NSString * neededstring = [NSString stringWithFormat:@"%.2f",res]; 
if([neededstring isEqualToString:@"0.00"]) 
    enteredtext = @"0";; 
textField.text = neededstring; 
return NO; 
} 
をお試しください
関連する問題