点不能从字符串到双精度

时间:2013-09-09 12:17:52

标签: ios objective-c nsstring double

您好。我正在尝试创建一个计算器,当我尝试使用点时它不起作用。当我点击点按钮时,所有其他数字都会被删除,并且该点将保留在开头。

- (IBAction)buttonPoint:(id)sender {
    if (self.statusMode == false) {
        winMargin.text = [winMargin.text stringByAppendingString:@"."];
        winMarginString = winMargin.text;
        winMarginInt = [winMarginString doubleValue];
        NSLog(@"%@", winMargin.text); // .
        NSLog(@"%.20f", winMarginInt); // Gives back 0.00000000000000000000
    }
}

- (IBAction)buttonOne:(id)sender {
    if (self.statusMode == false) {
        winMargin.text = [winMargin.text stringByAppendingString:@"1"];
        winMarginString = winMargin.text;
        winMarginInt = [winMarginString doubleValue];
        NSLog(@"%@", winMargin.text);
        NSLog(@"%.20f", winMarginInt);
    }
}

1 个答案:

答案 0 :(得分:0)

winMargin.text不可变,因此会被覆盖。

您需要NSMutableString来存储文本然后追加。

示例:

NSMutableString *str=[[NSMutableString alloc]init];
str=winMargin.text
winMargin.text=[str stringByAppendingString:@"1"];