3

iPhone の場合:

米国ロケールを使用すると、通貨は次のようになります: $1,234.56
英国ロケールを使用すると、通貨は次のようになります: £1,234.56
ドイツ語 (ドイツ) ロケールを使用すると、通貨は次のようになります: 1.234,56 €

最後に、日本の通貨: ¥1,234

日本の通貨には小数点以下がなく、これはカスタム キーボードに大きな影響を与えます。Cocoa-touch フレームワークで、特定の通貨の小数点以下の桁数を教えてくれるメソッドを見つけようとしています。

誰でも助けることができますか?

4

4 に答える 4

2

CFNumberFormatter オブジェクトを使用して、必要な情報を取得できるはずです。具体的には、CFNumberFormatterGetDecimalInfoForCurrencyCode を使用できます。

CFStringRef localeIdent = CFSTR("JPY");

int numDecimals;
double rounding;
BOOL result = CFNumberFormatterGetDecimalInfoForCurrencyCode(localeIdent, &numDecimals, &rounding);

それが役立つことを願っています。

于 2009-07-15T07:37:44.403 に答える
0

金融会社は、この種の情報のデータベースを維持しています。データを購入するか、オンラインソースからインポートできる場合があります。

注:一部の通貨では、小数点以下3桁または4桁が必要です。例については、 http://www.londonfx.co.uk/ccylist.htmlを参照してください。

于 2009-07-12T19:49:49.873 に答える
0

私は同様の問題を抱えていましたが、上記の答えは私の問題を本当に解決しませんでした。

NSNumberFormatter で maximumFractionDigits メソッドを使用することになり、日本語ロケールでは 0 になりました。フォーマッタにNSNumberFormatterCurrencyStyleを使用していることを確認してください。そうしないと、他のフォーマッタで小数点以下の桁数が表示されます。

    NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
    [currencyFormatter setLocale:[NSLocale currentLocale]];
    [currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];

    NSLog(@"Number of decimal places %i", [currencyFormatter maximumFractionDigits]);
于 2011-06-01T20:55:32.820 に答える