Unit conversions
The package contains conversion methods for length, area, time, speed, angle, and angular velocity units. These methods are used to convert values between different units of measurement.
For each unit type, there is an enum that provides conversion methods between units based on conversion factors relative to a base unit.
There are also extension methods on double
that allow for more concise
conversions.
Length conversions
Supported length units are with meter as the base unit:
- millimeter (mm)
- centimeter (cm)
- meter (m)
- kilometer (km)
- inch (in)
- foot (ft)
- yard (yd)
- mile (mi)
- nautical mile (nmi)
An example using the LengthUnit
enum:
// Convert directly from and to meters.final meters = 4000.0;final kmUnit = LengthUnit.kilometer;final kilometers = kmUnit.fromMeters(meters); // 4.0final meters2 = kmUnit.toMeters(kilometers); // 4000.0
// You can also convert between units wihout using meters.final miles = kmUnit.toUnit(kilometers, LengthUnit.mile); // ~ 2.485484
An example using an extension on double:
// from meters to kilometers1000.0.convertLength(to: LengthUnit.kilometer); // ~1.0// from kilometers to meters1.0.convertLength(from: LengthUnit.kilometer); // ~1000.0
Area conversions
Supported area units are with square meter as the base unit:
- square millimeter (mm²)
- square centimeter (cm²)
- square meter (m²)
- square kilometer (km²)
- square inch (in²)
- square foot (ft²)
- square yard (yd²)
- square mile (mi²)
- acre (ac)
- hectare (ha)
An example using the AreaUnit
enum:
// Convert directly from and to square meters.final squareMeters = 10000.0;final sqKmUnit = AreaUnit.squareKilometer;final squareKilometers = sqKmUnit.fromSquareMeters(squareMeters); // 0.01final squareMeters2 = sqKmUnit.toSquareMeters(squareKilometers); // 10000.0
// You can also convert between units without using square meters.final acres = sqKmUnit.toUnit(squareKilometers, AreaUnit.acre); // ~2.4711
An example using an extension on double:
// from square meters to square kilometers1000000.0.convertArea(to: AreaUnit.squareKilometer); // ~1.0
// from square kilometers to square meters1.0.convertArea(from: AreaUnit.squareKilometer); // ~1000000.0
Time conversions
Supported time units are with second as the base unit:
- nanosecond (ns)
- microsecond (µs)
- millisecond (ms)
- second (s)
- minute (min)
- hour (h)
- day (d)
- week (w)
An example using the TimeUnit
enum:
// Convert directly from and to seconds.final seconds = 3600.0;final hours = TimeUnit.hour.fromSeconds(seconds); // 1.0final seconds2 = TimeUnit.hour.toSeconds(hours); // 3600.0
// You can also convert between units without using seconds.final minutes = TimeUnit.hour.toUnit(hours, TimeUnit.minute); // 60.0
An example using an extension on double:
// from seconds to minutes60.0.convertTime(to: TimeUnit.minute); // 1.0
// from minutes to seconds1.0.convertTime(from: TimeUnit.minute); // 60.0
Speed conversions
Supported speed units are with meter per second as the base unit:
- millimeter per second (mm/s)
- centimeter per second (cm/s)
- meter per second (m/s)
- kilometer per hour (km/h)
- foot per second (ft/s)
- mile per hour (mph)
- knot (kn)
An example using the SpeedUnit
enum:
// Convert directly from and to meters per second.final metersPerSecond = 3.6;final kilometersPerHour = SpeedUnit.kilometerPerHour.fromMetersPerSecond(metersPerSecond); // 12.96final metersPerSecond2 = SpeedUnit.kilometerPerHour.toMetersPerSecond(kilometersPerHour); // 3.6
// You can also convert between units without using meters per second.final milesPerHour = SpeedUnit.kilometerPerHour.toUnit(kilometersPerHour, SpeedUnit.milePerHour); // 8.04672
An example using an extension on double:
// from meters per second to kilometers per hour1.0.convertSpeed(to: SpeedUnit.kilometerPerHour); // ~3.6
// from kilometers per hour to meters per second3.6.convertSpeed(from: SpeedUnit.kilometerPerHour); // ~1.0
Angle conversions
Supported angle units are with radian as the base unit:
- milliradian (mrad)
- radian (rad)
- arcsecond (arcsec)
- arcminute (arcmin)
- degree (° or deg)
- gradian (gon)
- turn (turn)
An example using the AngleUnit
enum:
// Convert directly from and to radians.final radians = 3.14159; // ~pifinal degrees = AngleUnit.degree.fromRadians(radians); // ~180.0final radians2 = AngleUnit.degree.toRadians(degrees); // ~3.14159
// You can also convert between units without using radians.final gradians = AngleUnit.degree.toUnit(degrees, AngleUnit.gradian); // ~200.0
An example using an extension on double:
// from degrees to radians90.0.convertAngle(from: AngleUnit.degree); // ~1.5708
// from radians to degrees1.5708.convertAngle(to: AngleUnit.degree); // ~90.0
Angular velocity conversions
Supported angular velocity units are with radian per second as the base unit:
- degree per second (°/s or deg/s)
- radian per second (rad/s)
- revolution per minute (rpm)
- revolution per second (rps)
- milliradian per second (mrad/s)
An example using the AngularVelocityUnit
enum:
// Convert directly from and to radians per second.final radiansPerSecond = 6.28319;final rpmUnit = AngularVelocityUnit.revolutionPerMinute;final rpm = rpmUnit.fromRadiansPerSecond(radiansPerSecond); // ~60.0final radiansPerSecond2 = rpmUnit.toRadiansPerSecond(rpm); // ~6.28319
// You can also convert between units without using radians per second.final degreesPerSecond = rpmUnit.toUnit(rpm, AngularVelocityUnit.degreePerSecond); // ~360.0
An example using an extension on double:
// from radians per second to degrees per second1.0.convertAngularVelocity( to: AngularVelocityUnit.degreePerSecond); // ~57.296
// from degrees per second to radians per second57.296.convertAngularVelocity( from: AngularVelocityUnit.degreePerSecond); // ~1.0