[英]How to convert number to words in swift by using func
给定 integer 'number' 在 0..<< 1000 的范围内,将数字打印为一个单词。 例如给定: let number: Int = 125 output 应该是一百二十五
您可以非常有效地使用 NumberFormatter :) 这是示例
let numberFormatter = NumberFormatter()
let number = 12355532
numberFormatter.numberStyle = .spellOut
let numberAsWord = numberFormatter.string(from: NSNumber(value: number))
print(numberAsWord)
你也可以像这样在幕后扩展 NSNumber
public extension NSNumber {
var spelledOut: String? {
let formatter = NumberFormatter()
formatter.numberStyle = .spellOut
return formatter.string(from: self)
}
}
为避免每次调用此属性时都创建数字格式化程序,您可以创建 static 格式化程序。 您还可以使计算属性泛型以支持所有数字类型:
extension NumberFormatter {
static let spelled: NumberFormatter = {
let formatter = NumberFormatter()
formatter.numberStyle = .spellOut
return formatter
}()
}
extension Numeric {
var spelledOut: String? { NumberFormatter.spelled.string(for: self) }
}
let integer = 1234
let integerSpelled = integer.spelledOut // "one thousand two hundred thirty-four"
let double = 123.4
let doubleSpelled = double.spelledOut // "one hundred twenty-three point four"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.