2016-03-30 72 views
1

için toplam sayısını eklemek için ben nasıl NSString

NSString* str = @"[\"40.00\",\"10.00\",\"60.05\"]"; 

gibi bir dize ben toplam dize miktarını nasıl bu konuda "110,05"

+2

Olası yinelenen [NSNumber'ların toplam toplamı bir NSArray'dan nasıl alınır?] (Http://stackoverflow.com/questions/11192503/how-get-the-total-sum-of-nsnumbers-from-a- NSArray) –

+0

@EICaptain kodum: -; i <[_ orderObj.itemArray saymak]; için (i = 0 int i ++) { NSString * atemp = [_ orderObj.itemArray valueForKeyPath: @ "fiyatı"]; NSLog (@ "title% @", atemp); } Çıktı: - başlık ( "440.00", "510.00", "560.00" ) nasıl –

+0

@SaurabhGupta NSString gelen toplam miktar almak: benim cevap at ... Eğer gerekli olduğunu? –

cevap

1

aşağıdaki gibidir:

1.

dize dışına dizisi olun. Dizi JSON biçiminde olduğundan, bunu şöyle yapabilirsiniz:

NSString* str = @"[\"40.00\",\"10.00\",\"60.05\"]"; 
NSArray *stringArray = [NSJSONSerialization JSONObjectWithData:[str dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil]; 

2. katına ve geri toplamını dönüştürme

double sum = 0; 
for (NSString *value in stringArray) { 
    sum += [value doubleValue]; 
} 

3. onları eklemek için dizeleri dönüştürün

NSString *sumStr =[[NSString alloc] initWithFormat:@"%f", sum]; 

Not yaklaşırdönüştürmek: bir NSString 210 ile double veya float yuvarlama hatalarına neden olabilir, bu sorunun üstesinden gelmek için bunun yerine NSDecimalNumber'u kullanmalısınız.

1

ihtiyacım var? Sen gibi devam edebilir

float myTotal = 0; 
for(int i=0;i<[_orderObj.itemArray count];i++) { 
    NSString *atemp=[_orderObj.itemArray valueForKeyPath:@"price"]; 
    NSLog(@"title %@", atemp); 
    myTotal = myTotal + [atemp floatValue]; 
} 
NSLog(@"final total==%f", myTotal);