2

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];
4

1 に答える 1

2

10の累乗をN掛けることにより、先行ゼロを削除できます。N100位を探しているので、を掛け0.012676100整数に変換します。

于 2012-07-17T14:25:07.227 に答える