2013-02-25 59 views
-2

我有佔位符00.00的文本字段。我想以這種格式輸入數字。 請幫助ios中textfield中的十進制格式

+0

你想進入或希望用戶輸入並在給定的格式驗證? – 2013-02-25 09:55:02

+1

[當用戶輸入輸入時驗證數字輸入到UITextField]的可能重複(http://stackoverflow.com/questions/9344159/validate-numeric-input-to-uitextfield-as-the-user-enters-input) – trojanfoe 2013-02-25 10:09:44

+0

感謝trojanfoe – Deepak 2013-02-25 10:19:44

回答

0

使鍵盤類型數字。而在內部使用下面的代碼來獲得雙重價值

 NSString *value =textfield_name.text; 
     double doubleValue = [value doubleValue]; 
0

試試這個方法:

讓您的課委託yourTextField,並添加代碼從here使用。

NSString *[email protected]"99.129";//get your value from textfield as yourField.text 
double doubleValue=[enteredValue doubleValue]; 
NSString *formattedDoubleValue=[NSString stringWithFormat:@"%.2f",doubleValue]; 
NSLog(@"->%@",formattedDoubleValue);//now you can set back to the textfield as yourField.text=formattedDoubleValue 

或者,您可以使用NSNumberFormatter。

NSNumberFormatter *numFormatter=[NSNumberFormatter new]; 
[numFormatter setFormat:@"00.00"]; 
NSString *str=[numFormatter stringFromNumber:@99.129]; 
NSLog(@"->%@",str); 

編輯:按照您的評論

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 
    if (textField == self.yourTextField){ 
     NSLog(@"here"); 
     NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; 

     NSString *expression = @"^([0-9]{1,2})(\\.([0-9]{1,2})?)?$"; 

     NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression 
                       options:NSRegularExpressionCaseInsensitive 
                       error:nil]; 
     NSUInteger numberOfMatches = [regex numberOfMatchesInString:newString 
                  options:0 
                   range:NSMakeRange(0, [newString length])]; 
     if (numberOfMatches==0){ 
      return NO; 
     } 
    } 

    return YES; 
} 
+0

我想驗證這種格式。 00.00 – Deepak 2013-02-25 10:05:33

+0

檢查我更新的答案,它工作嗎? – 2013-02-25 10:09:30

+0

當輸入文本字段本身它應該validate.can幫助請 – Deepak 2013-02-25 10:12:09