0

嗨,我的最小值为 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。请帮我解决这个问题。

4

2 回答 2

2

您需要将NSString您的文本字段返回的转换为NSNumber

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *textFieldNumber = [formatter numberFromString:[textField text]];

然后使用

[textFieldNumber decimalValue] > 100.0 && [textFieldNumber decimalValue] < 400

检查范围。

于 2012-09-04T13:47:06.163 回答
0

我已将 (textfield.text) 字符串转换为双精度值,并将双精度值与双精度值进行比较。它工作正常。感谢您的所有回答。

于 2012-09-05T07:52:03.377 回答