3

通貨文字列を 10 進数値に変換する数値フォーマッタをセットアップしました。問題は、テキスト文字列の先頭にドル記号 (「$」) がない場合、有効な一致する数値ではなく、0 に変換されることです。そう:

"$3.50" converts to 3.50
 "3.50" converts to 0

コンバーターのコードは次のとおりです。

// formatter to convert a value to and from a currency string
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormatter setGeneratesDecimalNumbers:YES];

何か不足していますか?

4

2 に答える 2

1

同様の問題に遭遇しました。解析のために NSNumberFormatter を破棄し、RegexKit Lite に切り替えたところ、はるかに優れた結果が得られました。

ここでコピーを入手してください: RegexKit Lite

次に、ここhttp://regexlib.com/にアクセスして、最適な正規表現を見つけてください。

于 2009-07-21T03:43:59.017 に答える
1

ここに記載されているように、「3.50」を有効な通貨文字列として認識しないため、「3.50」を 0 に変換しています。 -in-cocoa/ . デフォルトの NSNumberFormatterCurrencyStyle が必要に応じて柔軟でない場合は、これらのケースを処理するためにサブクラス化する必要がある場合があります。

于 2009-07-20T23:20:18.233 に答える