2013-10-27 41 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]; 
相关问题