我正在应用中制作,其中包括用户输入对象的价格,并且应用输出包含税的价格。但是,每次输出0,我都会得到一个涉及变量myDouble的运行时错误。我正在尝试将文本字段中的值放在并将其乘以1.06(我从设定的税率开始),然后将标签设置为新值。这是我的代码:
-(IBAction)textFieldReturn:(id)sender
{
[sender resignFirstResponder];
NSString *myString = inputtext2.text;
double myDouble = [myString doubleValue];
myDouble = myDouble*1.06;
NSLog(@"myDouble: %lf", myDouble);
price.text = [NSString stringWithFormat:@"%g", myDouble];
}
答案 0 :(得分:1)
你的inputtext2变量很可能是nil,所以它什么也没有返回。如果这是一个插座,请检查界面构建器中的连接。如果未连接插座,则变量将为nil
,因此字符串值将为nil
,因此双精度值为0.
答案 1 :(得分:0)
我认为您将要使用NSNumberFormatter并检查有效输入。
伪代码,未编译:
-(IBAction)textFieldReturn:(id)sender
{
[sender resignFirstResponder];
NSString *myString = inputtext2.text;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle: NSNumberFormatterDecimalStyle];
NSNumber *myNumber = [formatter numberFromString: myString];
double myDouble = 0;
if (myNumber != nil) {
myDouble = [myNumber doubleValue];
}
NSString *outputString = [formatter stringFromNumber:myDouble];
price.text = outputString;
}
如果输入的文本为0或不是有效数字,则应将您的数字默认为0.