6
Text("Värde \(Double(calc2, specifier: "%.2f").rounded())") 

//错误

我正在转换一个Slider使用双精度类型的值,但我无法指定它的格式?我收到一个错误,xcode 告诉我使用信号(?)。我也试过把它放进去Int

什么是正确的举动?

4

3 回答 3

6

您可以使用

Text("Värde \(calc2, specifier: "%.2f")") 

将其转换为 2 位小数。

为了获得更大的灵活性,您可以使用格式化程序并在字符串上利用appendInterpolation。使用下面的函数或其他东西来达到这个效果


func customFormat(_ number: Double) -> String  {
   let customFormatter = NumberFormatter()
   customFormatter.roundingMode = .down
   customFormatter.maximumFractionDigits = 2

   return "\(number, formatter: customFormatter)"   
}

于 2019-11-14T10:23:16.300 回答
2

我假设你想要类似的东西

Text("Värde \(String(format: "%.2f", calc2))")
于 2019-11-14T09:40:56.330 回答
0

问题是这Double(calc2, specifier: "%.2f")是可选的

处理它,例如,使用Double(calc2, specifier: "%.2f")?.rounded() ?? 0.0

于 2019-11-14T09:58:22.023 回答