如何将 NSInteger 转换为带有印度卢比的 objective-c 中的相应单词


NSInteger someNumber = 211242; 

我想知道一些函数,以便返回一个类似于"仅十万一万一千二百四十二卢比">的字符串

这是这样做的解决方案。您必须使用 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);

快速解决方案:

extension Int {
    var asWord:String {
        let numberValue = NSNumber(integer: self)
        var formatter = NSNumberFormatter()
        formatter.numberStyle = .SpellOutStyle
        return "(formatter.stringFromNumber(self)!)"
    }
}

最新更新