首页 > 解决方案 > 如何正确格式化字符串以在 Swift 中填充标签

问题描述

我有一个应用程序,它有一个向 UIView 支付数据的 segue,我需要在数字之后显示百分号,并且只有一个或两个十进制数字。正如您在下面看到的那样,我正在这样做,因为我无法从下面的第一个示例中使用“格式:”到第二个示例中执行相同的操作。

    var dailyUviString: String {
        return String(format: "%.1f", dailyUvi!)
    }
    var dailyPopString: String {
        return String("\(dailyPop!*100) %")
    }

有任何想法吗 ?

谢谢

标签: swiftuiviewformattinglabel

解决方案


如果您想在格式中包含百分号,您只需添加两次:

var dailyPopString: String {
    String(format: "%.1f%%", dailyPop!*100)   // "50.0%"
}

另一种选择是使用NumberFormatter. 请注意,使用NumberFormatterwith numberStyleset to时,.percent您不需要将值乘以 100:

let numberFormatter = NumberFormatter()
numberFormatter.minimumFractionDigits = 1
numberFormatter.maximumFractionDigits = 1
numberFormatter.numberStyle = .percent
numberFormatter.string(for: dailyPop!)  // "50.0%"

推荐阅读