在Xcode中将double变量乘以double

时间:2012-08-01 14:02:35

标签: xcode

我正在应用中制作,其中包括用户输入对象的价格,并且应用输出包含税的价格。但是,每次输出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];
}

2 个答案:

答案 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.