iOS:我想将 "."添加到 NSInteger 并将其显示为 NSString

标签 ios nsstring formatting numbers

我得到一个看起来像“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/

相关文章:

ios - 网页上的 Apple 登录设置

iphone - 缩放子类 UIView

ios - 是否可以在 TestFlight 中同时激活内部和外部构建?

iphone - 如果我将应用程序转换为 ARC,它仍然可以在运行 iOS 4 的设备上运行吗?

ios - 为什么将 char 数组转换为字符串会创建一个 nil 字符串?

0 到 24 之间的 Java 时间

Python 打印带有嵌套在字典中的列表的格式化文本

objective-c - NSRunAlertPanel + 格式字符串不是字符串文字(可能不安全)

objective-c - 遍历数组并 append 到 Objective-C 中的字符串

java - 如何在 Netbeans 中配置 Java 导入的组织