【发布时间】:2010-07-23 16:35:34
【问题描述】:
可能重复:
NSNumberFormatter and ‘th’ ‘st’ ‘nd’ ‘rd’ (ordinal) number endings
你好,
我正在构建一个下载玩家排名并显示它们的应用程序。比如说,你是所有玩家中的第 3 名,我插入了一个条件,将其显示为第 3 名,而不是第 3 名,我对第 2 名和第 1 名做了同样的事情。但是,当达到更高的排名时,例如第 2883 位,它将显示第 2883 位(原因很明显)
我的问题是,我怎样才能将号码重新格式化为 XXX1st、XXX2nd、XXX3rd 等?
为了说明我的意思,以下是我如何格式化我的数字以添加“rd”(如果它是 3)
if ([[container stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] isEqualToString:@"3"])
{
NSString*badge = [NSString stringWithFormat:@"%@rd",[container stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
NSString*scoreText = [NSString stringWithFormat:@"ROC Server Rank: %@rd",[container stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
profile.badgeValue = badge;
rank.text = scoreText;
}
我不能对不超过 2000 的每个数字都执行此操作(总共有 2000 个等级) - 我可以做些什么来解决这个问题?
【问题讨论】:
-
将序数显示为 2883th 的明显原因是什么?当我读到它时,我说的是“两千八百八十三”,而不是“两千八百八十三”。
-
...为什么最近突然每个人都想对一个数字进行排序?
标签: iphone cocoa integer ordinals