1
NSInteger someNumber = 211242; 

I would like to know some function so that would return a string similar to "Two lakh eleven thousand two hundred forty-two Rupees only"

MilanPanchal
  • 2,943
  • 1
  • 19
  • 37
Khuss
  • 21
  • 2

1 Answers1

1

Here is the solution to do that. You have to use NSNumberFormatter.

    NSInteger anInt = 11242043;
    NSString *wordNumber;

    //convert to words
    NSNumber *numberValue = [NSNumber numberWithInt:anInt]; //needs to be NSNumber!
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter setNumberStyle:NSNumberFormatterSpellOutStyle];
    wordNumber = [numberFormatter stringFromNumber:numberValue];
    NSLog(@"Answer: %@", wordNumber);

Swift Solution:

extension Int {
    var asWord:String {
        let numberValue = NSNumber(integer: self)
        var formatter = NSNumberFormatter()
        formatter.numberStyle = .SpellOutStyle
        return "\(formatter.stringFromNumber(self)!)"
    }
}
Sivajee Battina
  • 4,124
  • 2
  • 22
  • 45
  • I tried this and got `two hundred eleven thousand two hundred forty-two` . How to get `Two lakh eleven thousand` instead of `two hundred eleven thousand`? – RajeshKumar R Apr 05 '17 at 05:50
  • Understood your question. Bitter truth is, there is no support for this. You have to write your own number formatter manually – Sivajee Battina Apr 05 '17 at 07:24