2014-09-19 4 views
-5

Я пытаюсь добавить сумму всех моих номеров в свой NSArray.с добавлением суммы чисел в NSArray

Я могу сделать это совершенно нормально, но у меня есть проблема. он выводит десятичные точки чисел в моем массиве.

Фактическая цена объекта составляет R59.95, а когда я NSlog, выход забирает 0,95 и поддерживает только 59?

NSInteger sumq = 0; 
for (NSNumber *num in [self.viewOrderSummaryArray valueForKey:@"price"]) 
{ 
    sumq += [num intValue]; 
    NSLog(@"efeferwerwerwerwerwerw %ld", (long)sumq); 
} 


2014-09-19 11:05:25.016 FoodApp[25254:19075256] Output of Sum of numbers 59 
+1

Вы используете intValue, поэтому она возвращается целое .. – BalaChandra

+0

Существует тот факт, что вы используете 'NSInteger', но учтите, что вы также можете использовать' @ sum' вместо 'for loop' (меньше строк кода). – Larme

ответ

1

Попробуйте

float sumq = 0; 
NSArray *array = [self.viewOrderSummaryArray valueForKey:@"price"]; 
for (NSNumber *num in array) 
{ 
    sumq += [num floatValue]; 
    NSLog(@"efeferwerwerwerwerwerw %f",sumq); 
} 
0
float sumq = 0; 

Попробуйте выполнить печать с помощью NSLog(@"efeferwerwerwerwerwerw %lf", (float)sumq);

0

Вы преобразования десятичного значения в целое число, поэтому Num после отмены цифры. так что вместо этой линии

sumq += [num intValue];

записи

sumq += [num floatValue];

0

вы можете использовать этот код.

float sumq = 0; 

for (NSNumber *num in [self.viewOrderSummaryArray valueForKey:@"price"]) 

{ 

sumq += [num floatValue]; 

NSLog(@"efeferwerwerwerwerwerw %f", sumq); 

} 
0
float sumq = 0; 
NSArray *array = [self.viewOrderSummaryArray valueForKey:@"price"]; 
for (NSNumber *num in array) 
{ 
    sumq += [num doubleValue]; 
    NSLog(@"efeferwerwerwerwerwerw %.2f",sumq); 
} 
Смежные вопросы