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

我怀疑您是否要将结果设置[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 回答
1

因为默认情况下,格式化程序将使用运行它的设备上指定的语言环境。如果你想强制一个特定的显示,你需要使用setLocale:并提供适当的NSLocale实例。

于 2013-08-21T11:59:11.333 回答
1

没有问题。

  1. 当您使用localizedStringFromNumberNSNumberFormatterCurrencyStyle格式化数字时,它会根据您的地区为您提供数字格式。
  2. 如果你去你的模拟器设置 - 通用 - 国际 - 区域格式。应该是美国。因此,当您在模拟器上运行它时,它会显示 $。
  3. 如果您在设备中检查相同的内容。它将显示区域格式为印度。因此,它显示卢比。符号。
  4. 如果您想查看 $ 符号,请继续并更改设备中的设置。
于 2013-08-21T11:59:21.930 回答
0

你遇到这个问题是因为在设备设置->通用->国际->reion格式->是印度

只需将其更改为您选择的国家/地区,例如如果您想要 $ 符号然后选择 USA

于 2013-08-21T12:19:05.930 回答