在计算器屏幕上逐个数字删除数字



我想在计算器屏幕上逐个数字删除一个数字,但我只能删除完整的数字。有什么方法吗?

-(IBAction)cancelInput:(float)result1{
        NSString *myString = [[NSNumber numberWithFloat:result] stringValue];
        int str=[myString length]-1;
        NSString *newstring = [[NSNumber numberWithInt:str] stringValue];
        calculatorScreen.text= [NSString stringWithFormat:newstring];
        //NSLog(@"%d ",str);
}

你来了,

NSString *myString = [[NSNumber numberWithFloat:result] stringValue];
myString = [myString substringToIndex:[myString length]-1];
calculatorScreen.text= myString;
int

str=[myString length]-1 只会返回字符串的长度,比如说如果你的数字是 9876,它将返回 3(4-1),你的新字符串将是 3.如果你想删除最后一个字符,你必须创建 myString 的子字符串。

string = [string substringToIndex:[string length] - 1];
-(IBAction)backPressed:(UIButton *)sender
{
self.display.text=[self.display.text substringToIndex:[self.display.text length]-1];
if ( [self.display.text isEqualToString:@""] || [self.display.text isEqualToString:@"-"])
{
self.display.text =@"0";
}
}

这是按钮的核心功能。我冒昧地添加了 if 功能,以便它可以处理一些基本问题。像往常一样,将显示屏替换为主标签。If 函数有助于反检查您的标签是否变为空 " " 或具有负号 "-",并会自动将其替换为"0",类似于该方面的清除。您可以在其中改为运行 Clear 方法。但是使用

self.display.text =@"0"; 

为了更好地澄清。

使用以下代码:

else if([character isEqualToString:(NSString*) Delete])
{
    NSInteger index_of_char_to_remove=[_display length]-1;
    if(index_of_char_to_remove>=0)
    {
        [_display deleteCharactersInRange:NSMakeRange(index_of_char_to_remove, 1)];
        last_character_is_operator=NO;
    }
}

当按"C"时,它将检查此条件并逐个删除数据

最新更新