NSNumberFormatter and 'th' 'st' 'nd' 'rd' (ordinal) number endings

By : jan
Source: Stackoverflow.com

Is there a way to use NSNumberFormatter to get the 'th' 'st' 'nd' 'rd' number endings?


Looks like it does not exist. Here's what I'm using.

    NSString *ending;

    int ones = num % 10;
    int tens = floor(num / 10);
    tens = tens % 10;
    if(tens == 1){
        ending = @"th";
    }else {
        switch (ones) {
            case 1:
                ending = @"st";
            case 2:
                ending = @"nd";
            case 3:
                ending = @"rd";
                ending = @"th";
    return [NSString stringWithFormat:@"%d%@", num, ending];

Adapted from nickf's answer here http://stackoverflow.com/questions/69262/is-there-an-easy-way-in-net-to-get-st-nd-rd-and-th-endings-for-numbers

By : jan


Here's a Swift solution that cycles through the user's preferred languages until it finds one with known rules (which are pretty easy to add) for ordinal numbers:

extension Int {
    var localizedOrdinal: String {

        func ordinalSuffix(int: Int) -
By : Alnair

Many of the solutions here don't handle higher numbers like 112. Here is a simple way to do it.

for(int i=0;i
By : garafajon

Here's a short Int extension for the English language that also accounts for and displays negative integers correctly:

extension Int {
    func ordinal() -

This video can help you solving your question :)
By: admin