[笔记]iOS阿拉伯数字转中文

1,039 阅读1分钟

使用NumberFormatter

let fmt = NumberFormatter()
fmt.numberStyle = .spellOut
fmt.locale = Locale(identifier: "zh_CN")
let str = fmt.string(from: NSNumber(value: 12552))
print(str!)   //一万二千五百五十二

不设置local会跟随系统语言

public enum Style : UInt {

    ///无类型 输出:
    case none
    ///取小数点后三位 输出:1,255,002.123
    case decimal
    ///格式化为货币(保留两位小数),货币符号跟随Locale 输出:$1,255,002.12 (或 ¥1,255,002.12)
    case currency
    ///格式化为百分数(保留两位小数) 输出:125,500,212%
    case percent
    ///科学计数  1.25500212345E6
    case scientific
    ///跟随语言的拼写格式 
    ///one million two hundred fifty-five thousand two point one two three four five
    ///一百二十五万五千〇二点一二三四五
    case spellOut
    ///格式化为序号(保留整数) 跟随语言
    /// 1st 2nd 12th 
    /// 第2
    @available(iOS 9.0, *)
    case ordinal
    ///格式化为货币标准码 输出:USD 2412.12
    @available(iOS 9.0, *)
    case currencyISOCode
    ///格式化为货币 输出:2412.12 US dollars 
    ///2412.12人民币
    @available(iOS 9.0, *)
    case currencyPlural
    CurrencyAccounting:格式化为货币会计 输出:$2412.12
    @available(iOS 9.0, *)
    case currencyAccounting
}