点从字符串到双精度不起作用



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

- (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);
    }
}

winMargin.text是不可变的,所以它会被覆盖。

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

例:

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

最新更新