【问题标题】:Format string with trailing zeros removed for x decimal places in Swift [duplicate]在 Swift 中为 x 小数位删除尾随零的格式字符串 [重复]
【发布时间】:2015-08-20 06:06:27
【问题描述】:

这在 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/

有什么想法吗? tia。

【问题讨论】:

标签: swift string-formatting


【解决方案1】:

你必须使用 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;可以根据需要调整最小和最大小数位数。

希望对你有帮助!

【讨论】:

  • 太好了,我刚刚添加了formatter.minimumIntegerDigits = 1,所以如果我左边的数字为零,它不会删除它,(0.200 将是 0.2 而不是 .2)
猜你喜欢
  • 2014-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多