快速数字格式化

2024-01-14

我刚刚开始了解 Swift,但我在极其基础的数字格式化方面遇到了严重的问题。

例如,我需要显示至少 2 位数字的整数(例如 00、01、02、03、04、05 ...)。我期望的正常语法是这样的:

println(" %02i %02i %02i", var1, var2, var3);

...但我没有找到任何关于如何在 Swift 中实现这一目标的明确说明。我发现很难相信我需要创建一个自定义函数来做到这一点。将浮点或双精度值返回到固定的小数位数也是如此。

我找到了几个类似问题的链接(Swift 中的精确字符串格式说明符 https://stackoverflow.com/questions/24051314/precision-string-format-specifier-in-swift & 如何在 Swift 中使用 println 格式化数字 https://stackoverflow.com/questions/24102814/how-to-use-println-in-swift-to-format-number)但他们似乎混合了 Objective C,甚至谈论 Python 和使用统一库。没有 Swift 解决方案来满足这种基本的编程需求吗?如此基本的东西在 Swift 中真的被完全忽视了吗?


您可以使用以下构造函数构造一个具有类似 C 格式的字符串:

String(format: String, arguments:[CVarArgType])

使用示例:

var x = 10

println(String(format: "%04d", arguments: [x])) // This will print "0010"

如果您要经常使用它,并且想要更紧凑的形式,您可以实现如下扩展:

extension String {
    func format(arguments: [CVarArgType]) -> String {
        return String(format: self, arguments: arguments)
    }
}

允许简化其用法,如下例所示:

"%d apples cost $%03.2f".format([4, 4 * 0.33])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速数字格式化 的相关文章

随机推荐