0

「291839.0930820」のようないくつかの文字列を含むNSArrayがあります。

これらの値を配列内でフォーマットして、小数点以下2桁のみのUITableViewのdetailTextLabelに表示されるようにします: "291,839.09"

どうすればこれを達成できますか?

4

3 に答える 3

2

配列にfloat値がある場合は、このようなことを試すことができます

cell.detailTextLabel.text=[NSString stringWithFormat:@"%.02f", [[array objectAtIndex:index]floatValue]];
于 2013-02-21T20:39:07.847 に答える
2

特定のユーザーのドメインで数値が正しく表示されるように数値を適切にフォーマットするには、を使用しますNSNumberFormatterstringWithFormat:そのような目的でvを使用しないでください。

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]:
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];

NSNumber *val = array[indexPath.row];
NSString *text = [formatter stringFromNumber:val];

更新

NSNumber配列には実際には数値のオブジェクトは含まれていませんが、実際にNSStringは数値の表現が含まれているとJuanから感じています。この場合、私の答えの1行を変更する必要があります。変化する:

NSNumber *val = array[indexPath.row];

に:

NSNumber *val = @([array[indexPath.row] doubleValue]);

これによりNSString、配列からが取得され、次に文字列の値がとして取得され、double最後にがでラップdoubleされますNSNumber

于 2013-02-21T20:47:48.487 に答える
0

あなたの価値はdouble value = 291839.0930820;

このような文字列を作成できます

 NSString *formattedValue = [NSString stringWithFormat:@"%0.2f",value];

このformattedValueをテキストフィールド/ラベルに割り当てます。

 cell.textLabel.text = formattedValue;
于 2013-02-21T20:41:05.190 に答える