2016-03-30 4 views
1

Ich habe eine Zeichenfolge wie, wie man hinzufügen Gesamtzahl für NSString

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

Ich brauche die gesamte Zeichenfolge Betrag „110,05“

+2

Mögliche Duplikate von [Wie bekomme ich die Gesamtsumme von NSNumber aus einem NSArray?] (Http://stackoverflow.com/questions/11192503/how-get-the-total-sum-of-nsnumbers-froma-a- NSArray) –

+0

@EICaptain mein Code: - for (int i = 0; i <[_ orderObj.itemArray count]; i ++) { NSString * ATEMP = [_ orderObj.itemArray ValueForKeyPath: @ "Preis"]; NSLog (@ "title% @", atemp); } OutPut: - Titel ( "440.00", "510.00", "560.00" ) Wie die Gesamtsumme erhalten von NSString –

+0

@SaurabhGupta: überprüfen Sie meine Antwort ... ist, dass Sie benötigt? –

Antwort

1

Sie gehen wie folgt:

1. ein Array Stellen der Zeichenfolge aus. Da das Array im JSON-Format ist, können Sie es wie folgt tun:

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

2. die Saiten konvertieren, um sie

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

3. Konvertieren Sie die Summe zurück nach oben zu verdoppeln und füge zu einem NSString:

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

Beachten Sie, dass dieAnsätze konvertieren 210 bis double oder float kann Rundungsfehler verursachen. Um dieses Problem zu beheben, müssen Sie stattdessen NSDecimalNumber verwenden.

1

Wie wäre das?

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); 
Verwandte Themen