「291839.0930820」のようないくつかの文字列を含むNSArrayがあります。
これらの値を配列内でフォーマットして、小数点以下2桁のみのUITableViewのdetailTextLabelに表示されるようにします: "291,839.09"
どうすればこれを達成できますか?
「291839.0930820」のようないくつかの文字列を含むNSArrayがあります。
これらの値を配列内でフォーマットして、小数点以下2桁のみのUITableViewのdetailTextLabelに表示されるようにします: "291,839.09"
どうすればこれを達成できますか?
配列にfloat値がある場合は、このようなことを試すことができます
cell.detailTextLabel.text=[NSString stringWithFormat:@"%.02f", [[array objectAtIndex:index]floatValue]];
特定のユーザーのドメインで数値が正しく表示されるように数値を適切にフォーマットするには、を使用しますNSNumberFormatter。stringWithFormat:そのような目的で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。
あなたの価値はdouble value = 291839.0930820;
このような文字列を作成できます
NSString *formattedValue = [NSString stringWithFormat:@"%0.2f",value];
このformattedValueをテキストフィールド/ラベルに割り当てます。
cell.textLabel.text = formattedValue;