在 Swift 中删除 x 个小数位的尾随零的格式字符串

Format string with trailing zeros removed for x decimal places in Swift

这在 Swift (1.2)

let doubleValue1 = Double(10.116983123)
println(String(format: "%.2f", doubleValue1))

let doubleValue2 = Double(10.0)
println(String(format: "%.2f", doubleValue2))

版画

10.12
10.00

我正在寻找一种方法使用格式化程序或直接字符串格式而不是通过字符串操作来删除尾随零,以便打印:

10.12
10

我得到的最接近的是:

let doubleValue3 = Double(10.0)
println(String(format: "%.4g", doubleValue3))

但是 g 使用有效数字,这意味着我必须单独计算我的小数位数。这听起来像是一个丑陋的解决方案。

演示:http://swiftstub.com/651566091/

有什么想法吗?蒂亚

您必须使用 NumberFormatter:

    let formatter = NumberFormatter()
    formatter.minimumFractionDigits = 0
    formatter.maximumFractionDigits = 2
    print(formatter.string(from: 1.0000)!) // 1
    print(formatter.string(from: 1.2345)!) // 1.23

此示例将在第一种情况下打印 1,在第二种情况下打印 1.23;可以根据需要调整最小和最大小数位数。

希望对你有帮助!