【发布时间】:2012-09-04 13:33:18
【问题描述】:
您好,我的最小值为 100,最大值为 400。用户应在此值内输入。如果他们输入 400.5 它不应该接受。那是对我的文本字段的验证。我使用了以下代码
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *textFieldNumber = [formatter numberFromString:[dynamicHealthyHeartTxtFld text]];
NSNumber *MaxNumber = [formatter numberFromString:[[healthyHeartFieldsAry objectAtIndex:getHHTag] objectForKey:@"MaxVal"]];
NSNumber *MinNumber = [formatter numberFromString:[[healthyHeartFieldsAry objectAtIndex:getHHTag] objectForKey:@"MinVal"]];
if ([self checkForDecimalValue:dynamicHealthyHeartTxtFld.text])
{
if (([textFieldNumber decimalValue] < [MinNumber decimalValue]) || ([textFieldNumber decimalValue] > [MaxNumber decimalValue]) ) {
if ([textFieldNumber decimalValue] < [MinNumber decimalValue]) {
Custom_Alert *alert=[[Custom_Alert alloc] initWithTitle:@"Alert" message:[NSString stringWithFormat:@"The Value you entered in %@ is outside the acceptable range.Please correct and Continue ",[[healthyHeartFieldsAry objectAtIndex:getHHTag] objectForKey:@"TestName"]] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
enterAlert=YES;
[alert release];
}
else
{
Custom_Alert *alert=[[Custom_Alert alloc] initWithTitle:@"Alert" message:[NSString stringWithFormat:@"The Value you entered is %@ outside the acceptable range.Please correct and Continue",[[healthyHeartFieldsAry objectAtIndex:getHHTag] objectForKey:@"TestName"]] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
enterAlert=YES;
[alert release];
}
}
}
如果我使用此代码。它正在接受 400.5。请帮我解决这个问题。
【问题讨论】:
-
不应该接受任何个小数,还是只接受100到400范围内的小数?
-
它可以接受。它可以接受 101.1,但不应该接受 400.99。因为 400.99 大于 400。它不应该接受大于 400
-
它可以接受100到400范围内的小数
-
为什么要比较浮点数或双精度数时使用 intValue 消息? floatValue 或 doubleValue 不是更有意义吗?
-
将
UITextField的内容转换成double,比较double和double...不是更简单吗?快速的想法:if ([myTextfield.text doubleValue] <= 400.f && [myTextField.text doubleValue] >= 100.f) { ...in range... } else { ...outside of range... }。这对我来说更有意义。
标签: ios validation