0

$を表示したいUILabelもありますが、問題はシミュレーターで正しく動作することですが、代わりにデバイスでこのコードをテストすると、Rs(Rupess)にこの問題を修正する方法が表示されます。

  NSNumber *number=[[NSNumber alloc]initWithInt:1000];


   NSString *No = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterCurrencyStyle];
   NSLog(@"%@", No);

   UILabel * text=[NSString stringWithFormat:@"%@",No];

   NSLog(@"%@",text);
4

4 に答える 4

1

問題ありません。

  1. 数値を使用localizedStringFromNumberNSNumberFormatterCurrencyStyleて書式設定するため、地域に応じた数値書式が提供されます。
  2. シミュレーターの設定 - 一般 - 国際 - 地域形式に移動した場合。米国である必要があります。したがって、シミュレーターで実行すると $ が表示されます。
  3. お使いのデバイスで同じことを確認した場合。地域形式がインドとして表示されます。したがって、それはルピーを示しています。サイン。
  4. $ 記号を表示したい場合は、デバイスの設定を変更してください。
于 2013-08-21T11:59:21.930 に答える
1

デフォルトでは、フォーマッタは実行されているデバイスで指定されたロケールを使用するためです。特定の表示を強制したい場合はsetLocale:、適切なNSLocaleインスタンスを使用して提供する必要があります。

于 2013-08-21T11:59:11.333 に答える
1

[NSString stringWithFormat:@"%@",No]の結果をUILabelインスタンスに設定したいとは思いません。

正しいデバイスの地域設定を選択し、既存のコードを使用して値をローカル形式で出力するという、他の答えが最も可能性が高いようです。

ただし、任意の通貨形式で数値を出力することに興味がある場合は、次のようにします。

NSNumber *number = [NSNumber numberWithInt:1000];

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setCurrencyCode:@"INR"];

NSString *text = [formatter stringFromNumber:number];

NSLog(@"%@", text);

// Release formatter as required

ただし、通貨記号と基本的な文字列を使用する代わりにこれを行う理由はわかりません:p

NSString *text = @"₹1,000.00";
于 2013-08-21T12:31:34.667 に答える
0

この問題が発生したのは、デバイス設定 - >一般 - >国際 - > reion形式 - >がインドであるためです

$記号が必要な場合のように、選択した国に変更してからUSAを選択してください

于 2013-08-21T12:19:05.930 に答える