罗马数字格式化器 (RomanNumeralFormatter)

一个 Formatter 的子类,用于将数字格式化为罗马数字。 支持 0 到 400 万(不包含 400 万)之间的数字。

用法

要使用此格式化器,请创建一个 RomanNumeralFormatter 的实例,并像这样使用它

格式化数字

let formatter = RomanNumeralFormatter()
let string = formatter.string(for: 42) // "XLII"

解析罗马数字

let formatter = RomanNumeralFormatter()

var int = NSNumber(integerLiteral: 0) as AnyObject?
let success = formatter.getObjectValue(&int, for: "IX", errorDescription: nil)

if success {
    let intValue = (int as? NSNumber)?.intValue // 9
}

大数字

大多数罗马数字格式化器在 4,000 处停止。 但是,使用 Unicode 上横线字符,我们可以表示更大的数字,直到(但不包括)400 万。

let formatter = RomanNumeralFormatter()
let string = formatter.string(for: 3_999_999) // "M̅M̅M̅C̅M̅X̅C̅I̅X̅CMXCIX"