0

私のアプリの開発時に、私は小さな問題に遭遇しました。ユーザーがオブジェクトを追加するpriceArrayという配列があります。この状況では、@"1.50"や@"5.61"などのオブジェクトが追加されます。私はそれらを合計するために次のコードを持っていますが、それは小数を完全に無視します。たとえば、配列に@"1.50"と@"20.00"の2つのオブジェクトがある場合、ラベルには21.50ではなく21が表示されます。

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

変数sumint型であるため、小数部分は切り捨てられます (丸められず、単に削除されます)。代わりに、またはタイプ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 を使用する必要があります。

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 に答える