我有两个UITextfields - textfield1
和textfield2
。显示警报消息,同时有多个零
我只是在做两个文本字段的乘法运算。 textfield2
具有固定值,并且在textfield1
用户可以通过他们自己设置值。
现在,我面临着一个问题。如果用户将值设置为0,则显示警告消息。但是,如果用户设置多个零或十进制零(0.0或0.00),那么我不能显示警报消息。
我有两个UITextfields - textfield1
和textfield2
。显示警报消息,同时有多个零
我只是在做两个文本字段的乘法运算。 textfield2
具有固定值,并且在textfield1
用户可以通过他们自己设置值。
现在,我面临着一个问题。如果用户将值设置为0,则显示警告消息。但是,如果用户设置多个零或十进制零(0.0或0.00),那么我不能显示警报消息。
不要使用字符串。转换为数字:
double value1 = [textfield1.text doubleValue];
if (value1 == 0.0) {
// show alert
}
更新:其实用doubleValue
因为你想从世界各地支持的用户是不是一个好主意。某些用户可能输入的值为0.5
,而另一个用户可能使用0,5
等。最好使用NSNumberFormatter
将输入的文本转换为数字。
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSNumber *number = [formatter numberFromString:textfield1.text];
double value1 = [number doubleValue];
您可以添加< UITextFieldDelegate>您xxclass.h
和xxclass.m实施委托
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([textField.text isEqualToString:@""] && [string isEqualToString:@"0"]){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:APP_NAME message:@"You can not set Zero." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show];
return NO;
}
return YES;
}
这不是一个好主意。这可以防止用户输入诸如“0.5”之类的值。 – rmaddy
是的,前提是不允许输入浮点数。 – xuanwenchao
但这不是海报所要的。浮动是允许的,而不是各种形式的零。 – rmaddy
float value1 = [textfield1 text] floatValue];
int value2 = [textfield1 text] intValue];
if (value1 == 0.0 || value2 == 0) {
// show alert
}
什么,如果用户设置0.0000003? –
简单的规则。如果您要进行算术运算,请使用数字类型而不是字符串。 – Desdenova