2012-05-30 87 views
3

我想在計算器屏幕上按位數刪除數字,但只能刪除完整的數字。有什麼方法嗎?刪除計算器屏幕上的數字按位數

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

試試這個... if([string length]> 0) string = [string substringToIndex:[string length] - 1]; –

回答

4

在這裏你去,

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

我想刪除一個數字,比如456變成45。在這裏像dat一樣只是刪除整個號碼 – IronManGill

+0

不會。它只刪除最後一個字符。再次檢查您的代碼。 –

+2

您可以通過將比較結果清除爲0來簡化此操作。 – CodaFi

3

INT海峽= [myString的長度] -1只會返回您的字符串的長度,說如果你的號碼是9876,它會返回3(4- 1),你的newstring將是3.如果你想刪除最後一個字符,你必須創建myString的子字符串。

string = [string substringToIndex:[string length] - 1]; 
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」,它會檢查這個條件,刪除一個

+0

它doent工作...你能更具體一點? – IronManGill

+0

你必須檢查這個鏈接http://www.datasprings.com/resources/articles-information/iphone-sdk-getting-started-example-code然後下載代碼。 – USK

+0

Thanx fr的代碼@USK – IronManGill

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 [email protected]"0"; 
} 

} 

數據一個這是核心功能按鈕。我冒昧地添加if功能,以便它可以處理一些基本問題。像往常一樣,將顯示替換爲主標籤。 If函數有助於檢查您的標籤是否變空或者帶有負號「 - 」,並且會自動替換爲「0」,類似於該方面的清楚。您可以在其中運行清除方法。但使用

self.display.text [email protected]"0"; 

改爲更好的說明。

+0

如果([self.display.text length]> 0),我會添加一個字符串以縮短1以防止崩潰。 – Fengson