Swift Celsius 的 measurementFormatter 不工作
Swift measurementFormatter from Celsius not working
我刚开始swift。
这就是我在操场上拥有的...
let tempF1 = Measurement(value: 98.6, unit: UnitTemperature.fahrenheit)
let tempC1 = tempF1.converted(to: UnitTemperature.celsius)
let convertedTemperature1 = MeasurementFormatter().string(from: tempC1)
输出:
98.6 华氏度
37.0000000000025 °C.
“98.6°F”
let tempC2 = Measurement(value: 37, unit: UnitTemperature.celsius)
let tempF2 = tempC2.converted(to: UnitTemperature.fahrenheit)
let convertedTemperature2 = MeasurementFormatter().string(from: tempF2)
输出:
37.0 摄氏度
98.59999999999546°F
“98.6°F”
如上所示,华氏度格式有效,但摄氏度格式无效...
知道我做错了什么吗??
谢谢
格式正确。
MeasurementFormatter 以正确的语言环境设置格式输出值,默认为 .current。这意味着无论您使用什么单位创建变量,它都将始终显示在与格式化程序的区域设置相对应的单位中。
具体设置语言环境会改变输出
let mf = MeasurementFormatter()
let temp = Measurement(value: 37.3, unit: UnitTemperature.celsius)
mf.locale = Locale(identifier: "en_GB")
print(mf.string(from: temp))
mf.locale = Locale(identifier: "fr_FR")
print(mf.string(from: temp))
mf.locale = Locale(identifier: "en_US")
print(mf.string(from: temp))
这输出:
37.3°C - UK format, in Celsius, and with a period separator
37,3 ° - French format in Celsius, and with a comma separator
99.14°F - USA format, in Fahrenheit, and with a comma separator
我刚开始swift。 这就是我在操场上拥有的...
let tempF1 = Measurement(value: 98.6, unit: UnitTemperature.fahrenheit)
let tempC1 = tempF1.converted(to: UnitTemperature.celsius)
let convertedTemperature1 = MeasurementFormatter().string(from: tempC1)
输出:
98.6 华氏度
37.0000000000025 °C.
“98.6°F”
let tempC2 = Measurement(value: 37, unit: UnitTemperature.celsius)
let tempF2 = tempC2.converted(to: UnitTemperature.fahrenheit)
let convertedTemperature2 = MeasurementFormatter().string(from: tempF2)
输出:
37.0 摄氏度
98.59999999999546°F
“98.6°F”
如上所示,华氏度格式有效,但摄氏度格式无效...
知道我做错了什么吗??
谢谢
格式正确。
MeasurementFormatter 以正确的语言环境设置格式输出值,默认为 .current。这意味着无论您使用什么单位创建变量,它都将始终显示在与格式化程序的区域设置相对应的单位中。
具体设置语言环境会改变输出
let mf = MeasurementFormatter()
let temp = Measurement(value: 37.3, unit: UnitTemperature.celsius)
mf.locale = Locale(identifier: "en_GB")
print(mf.string(from: temp))
mf.locale = Locale(identifier: "fr_FR")
print(mf.string(from: temp))
mf.locale = Locale(identifier: "en_US")
print(mf.string(from: temp))
这输出:
37.3°C - UK format, in Celsius, and with a period separator
37,3 ° - French format in Celsius, and with a comma separator
99.14°F - USA format, in Fahrenheit, and with a comma separator