Conversions between temperature scales are needed, especially in a world where three countries (the United States, the Cayman Islands and Liberia) use Fahrenheit in contrast to the Celsius scale.

Thankfully you don't have to remember the conversion formulae as an iOS developer. The `Foundation`

framework comes to the rescue with its `Measurement`

type.

A programmatic interface to convert measurements into different units, as well as calculate the sum or difference between two measurements.

The `Foundation`

framework provides concrete `Unit`

subclasses for many of the most common types of physical units. This includes temperature scales :)

```
let celsius = Measurement(value: 20.0, unit: UnitTemperature.celsius)
let fahrenheit = celsius.converted(to: .fahrenheit).value
let kelvin = celsius.converted(to: .kelvin).value
print(fahrenheit) // 67.99999999999571
print(c.converted(to: .kelvin).value) // "293.15"
```

Use the `MeasurementFormatter`

to present the conversion result to the end user.

A formatter that provides localized representations of units and measurements.

```
let formatter = MeasurementFormatter()
formatter.unitOptions = .providedUnit
let t = Measurement(value: 20.0, unit: UnitTemperature.celsius)
print(formatter.string(from: t)) //20Β°C
print(formatter.string(from: t.converted(to: .fahrenheit))) // 68Β°F
print(formatter.string(from: t.converted(to: .kelvin))) // 293.15 K
```

Let me finish my post with the following advice: Check the `Unit`

subclasses below before your try implementing your own unit conversion π

`Unit` subclass | Description | Base unit |

UnitAcceleration | Unit of measure for acceleration | meters per second squared (m/sΒ²) |

UnitAngle | Unit of measure for planar angle and rotation | degrees (Β°) |

UnitArea | Unit of measure for area | square meters (mΒ²) |

UnitConcentrationMass | Unit of measure for concentration of mass | grams per liter (g/L) |

UnitDispersion | Unit of measure for dispersion | parts per million (ppm) |

UnitDuration | Unit of measure for duration of time | seconds (sec) |

UnitElectricCharge | Unit of measure for electric charge | coulombs (C) |

UnitElectricCurrent | Unit of measure for electric current | amperes (A) |

UnitElectricPotentialDifference | Unit of measure for electric potential difference | volts (V) |

UnitElectricResistance | Unit of measure for electric resistance | ohms (Ξ©) |

UnitEnergy | Unit of measure for energy | joules (J) |

UnitFrequency | Unit of measure for frequency | hertz (Hz) |

UnitFuelEfficiency | Unit of measure for fuel efficiency | liters per 100 kilometers (L/100km) |

UnitIlluminance | Unit of measure for illuminance | lux (lx) |

UnitInformationStorage | Unit of measure for quantities of information | bytes (b) |

UnitLength | Unit of measure for length | meters (m) |

UnitMass | Unit of measure for mass | kilograms (kg) |

UnitPower | Unit of measure for power | watts (W) |

UnitPressure | Unit of measure for pressure | newtons per square meter (N/mΒ²) |

UnitSpeed | Unit of measure for speed | meters per second (m/s) |

UnitTemperature | Unit of measure for temperature | kelvin (K) |

UnitVolume | Unit of measure for volume | liters (L) |

### Did you find this article valuable?

Support **Marco Eidinger** by becoming a sponsor. Any amount is appreciated!