Как конвертировать 1000 фунтов в 1 короткую тонну с текущей локалью в Swift iOS в зависимости от локали?

Как мне конвертировать 1000 кг в 1 короткую тонну в текущей локали в Swift iOS? Ввод в кг. Я хочу вывести строку в фунтах или коротких тоннах в зависимости от того, была ли она выше или ниже 1000 коротких тонн.

Однако если языковой стандарт по умолчанию был в метрической системе, его следует преобразовать в метрические тонны. == 0,5 метрических тонн

Я считаю, что должен быть гораздо более простой способ, чем делать, если заявления, подобные следующим.

Пример:

let x = Measurement(value=1000, unit:UnitMass.kilograms)

if locale is metric and value is 1000kg and above{
// convert it metric tons
}else if not metric system{
   if x converted lbs and is above 1000lbs and above{
      //convert to short tons
   }else{ 
     //remain in lbs
   }
}

1 ответ

Использование Locale чтобы увидеть, настроено ли устройство на использование метрической системы. Остальное относительно просто:

let kg = Measurement<UnitMass>(value: 1000, unit: .kilograms)

if Locale.current.usesMetricSystem && kg.value > 1000 {
    let tons = kg.converted(to: .metricTons)
} else {
    let lbs = kg.converted(to: .pounds)

    if lbs.value > 1000 {
        let shortTons = lbs.converted(to: .shortTons)
    } else {
        // lbs
    }
}
Другие вопросы по тегам