在NSArray中添加数字之和

时间:2014-09-19 09:09:52

标签: ios objective-c nsmutablearray sum

我正在尝试将NSArray中所有数字的总和加起来。

我完全可以做到这一点,但我有一个问题。它取出了我的数组中数字的小数点。

对象的实际价格是R59.95,当我NSlog时,输出会被带走.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

5 个答案:

答案 0 :(得分:1)

试试这个

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

答案 1 :(得分:0)

float sumq = 0;

尝试使用NSLog(@"efeferwerwerwerwerwerw %lf", (float)sumq);

进行打印

答案 2 :(得分:0)

您正在将十进制值转换为整数,这就是消除数字后的数字的原因。所以而不是这一行

sumq += [num intValue];

sumq += [num floatValue];

答案 3 :(得分:0)

您可以使用此代码。

float sumq = 0;

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

{

sumq += [num floatValue];

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

}

答案 4 :(得分:0)

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