快速数字格式化

标签 swift formatting numbers

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

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

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

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

我找到了几个类似问题的链接(Precision String Format Specifier In SwiftHow 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/

相关文章:

swift - 使用当前用户电子邮件设置值

pandas - 使用 Python 中的 StyleFrame 库在 Excel 中显示尾随零时出现问题

formatting - 同时在多行中添加空格 - 在 Pycharm 中

javascript - 检查输入字符串是否为正 int/float 数

swift - 选择生成不同的 SKSpriteNode

ios - 当我触摸时,UIButton 突出显示不起作用

swift - 对 Swift [UI] 中的 UserDefaults 感到疯狂

java - 删除除连字符之外的所有特殊字符

javascript - YouTube 的 APi : "current time" isn't precise

ruby - 在 ruby​​ 中使用正则表达式计算字符串中数字和字符的长度