0

在开发我的应用程序时,我遇到了一个小问题。我有一个名为 priceArray 的数组,用户可以将对象添加到该数组中。在这种情况下,将添加 @"1.50" 或 @"5.61" 等对象。我有以下代码可以将它们相加,但它完全忽略了小数。例如,如果数组有两个对象 @"1.50" 和 @"20.00",则标签将显示 21 而不是 21.50。

int sum=0;
for(int x=0; x < [priceArray count]; x++)
{
    sum += [[priceArray objectAtIndex:x] intValue];
}

budgetLabel.text = [NSString stringWithFormat:@"$%d", sum];

提前感谢您的所有帮助!

4

3 回答 3

2

您的sum变量是一种int类型,因此小数部分将被截断(不四舍五入 - 只是丢弃)。相反,sum应该是一个doublefloat类型。

float sum=0;
for(int x=0; x < [priceArray count]; x++)
{
    sum += [[priceArray objectAtIndex:x] floatValue];
}

budgetLabel.text = [NSString stringWithFormat:@"$%.2f", sum];
于 2013-02-26T04:03:52.460 回答
0

您需要改用浮点数。

float sum=0;
for(int x=0; x < [priceArray count]; x++)
{
    sum += [[priceArray objectAtIndex:x] floatValue];
}

budgetLabel.text = [NSString stringWithFormat:@"$%f", sum];

整数是整数。21 是圆的,21.5 不是圆的。

于 2013-02-26T04:04:31.707 回答
0

遵循此代码 -

float sum = 0.0;
for (int x = 0; x<[priceArray count]; x++)
{
    sum += [[priceArray objectAtIndex:x] floatValue];
}

budgetLabel.text = [NSString stringWithFormat:@"%f",sum];

我希望这能帮到您。

于 2013-02-26T04:07:10.473 回答