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)文字列を double 値に変換し、double 値と double 値を比較します。それは正常に動作します。すべての回答に感謝します。

于 2012-09-05T07:52:03.377 に答える