我有一个UILabel,我想在其中显示$,它工作得很好,但问题是它在模拟器上工作正常,但当我在设备上测试这段代码时,它显示了R (Rupess),任何如何解决这个问题的想法。
NSNumber *number=[[NSNumber alloc]initWithInt:1000];
NSString *No = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterCurrencyStyle];
NSLog(@"%@", No);
UILabel * text=[NSString stringWithFormat:@"%@",No];
NSLog(@"%@",text);发布于 2013-08-21 19:59:11
因为在默认情况下,格式化程序将使用运行格式化程序的设备上指定的区域设置。如果希望强制显示特定内容,则需要使用setLocale:并提供适当的NSLocale实例。
发布于 2013-08-21 19:59:22
没有问题。
localizedStringFromNumber和NSNumberFormatterCurrencyStyle格式化数字时,它会根据您所在的地区为您提供数字格式。发布于 2013-08-21 20:31:35
我怀疑您是否希望将[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";https://stackoverflow.com/questions/18356697
复制相似问题