gpt4 book ai didi

ios - 如何在iOS应用程序中将小数位限制为四位

转载 作者:行者123 更新时间:2023-12-01 18:36:57 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Limit formatted Measurement to 2 digits

(1 个回答)


3年前关闭。




我正在制作一个温度 slider ,但输出继续显示小数点后 15 位左右的数字。我该如何解决这个问题并让它在小数点后只显示 4 个数字?

import UIKit

class TemperatureViewController : UIViewController {

@IBOutlet weak var fahrenheitLabel: UILabel!
@IBOutlet weak var celsiusLabel: UILabel!
@IBOutlet weak var kelvinLabel: UILabel!
@IBOutlet weak var temperatureSlider: temperatureSlider!
var temperature:Measurement<UnitTemperature> {
let fahrenheitValue = Measurement<UnitTemperature>(value: Double(temperatureSlider.value), unit: UnitTemperature.celsius)
return fahrenheitValue
}
@IBAction func sliderChange(_ sender: Any) {
updateTemperatureDisplay()
}
func updateTemperatureDisplay() {
celsiusLabel.text = temperature.description
fahrenheitLabel.text = temperature.converted(to: .fahrenheit).description
kelvinLabel.text = temperature.converted(to: .kelvin).description
}
override func viewDidLoad() {
updateTemperatureDisplay()
super.viewDidLoad()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

}

最佳答案

在大多数情况下,您应该使用可用的格式化程序。测量 API 提供了 MeasurementFormatter 这是一个很好的起点

let celsius = Measurement<UnitTemperature>(value: 10.91235, unit: UnitTemperature.celsius)
let fahrenheit = celsius.converted(to: .fahrenheit)

let mf = MeasurementFormatter()
mf.unitOptions = .providedUnit

mf.string(from: celsius)
mf.string(from: fahrenheit)

所以上面的例子基本上输出
10.91235 °C // original
51.64222999999585 °F // converted

10.912°C
51.642°F

如果您需要更多控制,您可以提供自己的 NumberFormatterMeasurementFormatter
let numberFormatter = NumberFormatter()
numberFormatter.maximumFractionDigits = 4
numberFormatter.minimumFractionDigits = 2

let mf = MeasurementFormatter()
mf.numberFormatter = numberFormatter
mf.unitOptions = .providedUnit

关于ios - 如何在iOS应用程序中将小数位限制为四位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53055692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com