我刚刚开始了解 Swift,但我在非常基础的数字格式方面遇到了严重问题。
例如,我需要显示一个至少有 2 位数字的整数(例如 00、01、02、03、04、05 ...)。我期望的正常语法是这样的:
println("%02i %02i %02i", var1, var2, var3);
...但是我没有找到任何关于如何在 Swift 中实现这一目标的明确说明。我很难相信我需要创建一个自定义函数来做到这一点。将 float 或 double 值返回到固定的小数位数也是如此。
我找到了几个类似问题的链接(Precision String Format Specifier In Swift 和 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])
关于快速数字格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26167453/