我得到一个看起来像“8444”的NSInteger。我想以“84.44”以下方式显示它。 如果整数看起来像“84455”那么它应该看起来像“844.55”。如果它是“85544433”那么它应该看起来像“855.444.33”。
有什么建议吗?我想使用 NSStringWithFormat 但我不知道要提供哪些标签。
最佳答案
您可以根据区域设置修改数字的表示,事实上,如果您允许 iOS 检测正确的区域设置并应用相应的格式会更好,根据不同的国家/地区,它可能会有很大差异至 http://en.wikipedia.org/wiki/Decimal_mark .
在您的示例中,您使用的是 NSInteger,但我猜测最后 2 个数字是小数部分,如果是这样,您可以这样做并保持语言环境的一致性:
NSInteger integer = 8444;
// Convert integet to decimal
NSNumber *number = [NSNumber numberWithFloat:((float)integer/100)];
// Create formatter
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
// Conver number to string
NSString *str = [formatter stringFromNumber:number];
该代码将使用在 iOS 上配置的区域设置,但如果您想特别强制使用一个区域设置,您可以通过在转换前添加以下行来实现:
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[formatter setLocale:locale];
关于iOS:我想将 "."添加到 NSInteger 并将其显示为 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374809/