我有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);
答案 0 :(得分:1)
因为默认情况下格式化程序将使用在其运行的设备上指定的语言环境。如果您想强制使用特定显示,则需要使用setLocale:
并提供相应的NSLocale
实例。
答案 1 :(得分:1)
没有问题。
localizedStringFromNumber
和NSNumberFormatterCurrencyStyle
格式化数字时,它会根据您所在的地区为您提供数字格式。答案 2 :(得分: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";
答案 3 :(得分:0)
您遇到此问题,因为在设备设置中 - > general-> international-> reion format - >是印度
只需将其更改为您选择的国家/地区,如果您需要$符号,然后选择美国