「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;