2011-11-08 58 views
0

即時通訊新的iPhone,我有一個文本框,當我點擊自定義數字按鈕的值將打印在文本字段中,我想輸入一個文本字段中的值,如果我輸入一個值,值應該來到左側小數點如何?如何在iphone中顯示textfield中的浮點值?

例如:12345

我想這 123.45

回答

1

你的問題有點不清楚 - 你想設置的UITextField的文本?您是否嘗試過:

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

其中myFloat是您的浮點變量。字符串內的%.2f語句將打印myFloat到2個小數位。

希望這是你所追求的。

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; 
}