NSNumberFormatter
をフォーマットするために使用していますNSDecimalNumber
。
0.012676
番号を次のように表示するには、どのような構成を使用できます1
か?
重要:1.0に切り上げようとはしていません—小数点以下100桁に切り上げてから、先行するゼロと小数点記号を削除しようとしています。
私の現在の構成は次のようになります。
// in a method...
NSDecimalNumber *value = /* retrieve a value like 0.012676 */;
NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
// this is the rounding behavior I want
[nf setRoundingMode: NSNumberFormatterRoundHalfEven];
[nf setMinimumFractionDigits: 2];
[nf setMaximumFractionDigits: 2];
return [nf stringFromNumber: value];
次の出力を生成します。
.01
dasblinkenlightとTwitterの友達のおかげで、解決策は単純にを掛けて100
、小数桁を削除することです。
[nf setMultiplier: [NSNumber numberWithInt: 100]];
[nf setMinimumFractionDigits: 0];
[nf setMaximumFractionDigits: 0];