我有占位符 00.00 的文本字段。我想以这种格式输入数字。请帮忙
问问题
2978 次
2 回答
0
将键盘类型设为数字。并在内部使用下面的代码来获得双倍价值
NSString *value =textfield_name.text;
double doubleValue = [value doubleValue];
于 2013-02-25T09:48:56.057 回答
0
试试这个方法:
让您的班级成为 的代表yourTextField
,并添加此处使用的代码。
NSString *enteredValue=@"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;
}
于 2013-02-25T09:59:42.727 回答