How do I convert an NSInteger to the corresponding words in objective-c with indian rupees

215 Views Asked by At
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"

1

There are 1 best solutions below

2
Sivajee Battina On

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)!)"
    }
}