2013-10-27 38 views
0

我想遞減一個NSString值,它可能包含一個保存的數量(例如:560.00) ,並且當用戶輸入一個值到UITextField對象中,比如50.00時,保持值560.00的NSString從50.00遞減到510.00仍然保留價值而不刪除整個值或將其設置爲50.00?我如何從用戶的UITextField值輸入遞減NSString的值?

+1

請您詳細說明您的第二部分 - 仍然保留價值而不刪除整個值或將其設置爲50.00? – Abhinav

+0

如果您將textfield值自動設置爲NSString,它將設置爲newone,那麼遞減的概念是什麼? –

+0

那麼,如果用戶輸入一個值,那麼與該文本字段相關聯的字符串就會被更新,因此如果該值爲20.00,則與第一個值相距20.00,並將值更新爲新值。我試圖做到這一點,但它只是不斷刪除字符串,並將其設置爲我輸入的值,而不是我想要的:) – Amit

回答

0

使用NSNumberFormatter來解析NSString值到NSNumber並反向。另外,它將允許您處理用戶的區域設置。

基本例如:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
NSNumber *numberFromString = [numberFormatter numberFromString:userInput]; 
double valueAfterDecrement = [numberFromString doubleValue] - delta; 
NSString *stringFromNumber = [numberFormatter stringFromNumber:@(valueAfterDecrement)]; 
+0

我對此很陌生,所以我怎麼把這個呢?我用NSNumberFormatter替換NSString? – Amit

+0

是的,你不能做任何使用字符串的數學運算,將它轉換爲數字,並做你的東西和顯示。 –

0

這裏一個基本的例子。

NSString *string = @"50.22"; 
    float number=[string floatValue]; 
    NSLog(@"%f",number); 

    NSString *string1 = @"560.22"; 
    float number1=[string1 floatValue]; 
    NSLog(@"%f",number1); 

    float ans = number1 - number; 
    NSLog(@"%f",ans); 

    NSString * finalStr = [NSString stringWithFormat:@"%f",ans]; 
相關問題