Repository navigation
API Overview
Marcus Ackre Medina edited this page Sep 13, 2026
·
1 revision
MarcusMedina.Units.Distance.Distance — a readonly struct implementing IComparable<Distance> and IEquatable<Distance>. Internally stores everything as meters via the Meters property (double).
public Distance(double meters)
public double Meters { get; }ToString() renders as "{value} m" using invariant culture.
Every creation method below has both an int and a double overload. Factors are the exact multipliers used in source to convert to meters.
| Unit | Create | Convert back | Factor (→ m) |
|---|---|---|---|
| Nanometer | Nanometers() |
ToNanometers() |
1e-9 |
| Micrometer | Micrometers() |
ToMicrometers() |
1e-6 |
| Millimeter | Millimeters() |
ToMillimeters() |
0.001 |
| Centimeter | Centimeters() |
ToCentimeters() |
0.01 |
| Decimeter | Decimeters() |
ToDecimeters() |
0.1 |
| Meter | Meters() |
ToMeters() |
1 |
| Decameter | Decameters() |
ToDecameters() |
10 |
| Hectometer | Hectometers() |
ToHectometers() |
100 |
| Kilometer | Kilometers() |
ToKilometers() |
1,000 |
| Myriameter | Myriameters() |
ToMyriameters() |
10,000 |
US survey units, based on the US survey foot (1200/3937 m ≈ 0.3048006 m — slightly different from the international foot):
| Unit | Create | Convert back | Factor (→ m) |
|---|---|---|---|
| Survey foot | SurveyFeet() |
ToSurveyFeet() |
1200/3937 ≈ 0.3048006 |
| Survey mile | SurveyMiles() |
ToSurveyMiles() |
5280 × 1200/3937 ≈ 1609.347 |
| US rod | UsRods() |
ToUsRods() |
16.5 × 1200/3937 ≈ 5.02921 |
| US chain | UsChains() |
ToUsChains() |
66 × 1200/3937 ≈ 20.11684 |
| Unit | Create | Convert back | Factor (→ m) |
|---|---|---|---|
| Inch | Inches() |
ToInches() |
0.0254 |
| Foot | Feet() |
ToFeet() |
0.3048 |
| Yard | Yards() |
ToYards() |
0.9144 |
| Mile | Miles() |
ToMiles() |
1609.344 |
| Nautical mile | NauticalMiles() |
ToNauticalMiles() |
1852 |
| Unit | Create | Convert back | Factor (→ m) |
|---|---|---|---|
| Link | Links() |
ToLinks() |
0.201168 |
| Rod (25 links) | Rods() |
ToRods() |
5.0292 |
| Chain (4 rods) | Chains() |
ToChains() |
20.1168 |
| Furlong (10 chains) | Furlongs() |
ToFurlongs() |
201.168 |
| League (3 miles) | Leagues() |
ToLeagues() |
4828.032 |
| Fathom (6 feet) | Fathoms() |
ToFathoms() |
1.8288 |
| Cable (1/10 nautical mile) | Cables() |
ToCables() |
185.2 |
| Unit | Create | Convert back | Factor (→ m) |
|---|---|---|---|
| Mil (modern, since 1889) | Mil() |
ToMil() |
10,000 |
Based on the Rhenish foot (before 1855):
| Unit | Create | Convert back | Factor (→ m) |
|---|---|---|---|
| Tum (1/12 fot) | Tum() |
ToTum() |
0.026154 |
| Fot | Fot() |
ToFot() |
0.31385 |
| Kvart (6 tum, ½ fot) | Kvart() |
ToKvart() |
0.1569 |
| Aln (2 fot) | Alnar() |
ToAlnar() |
0.6277 |
| Famn (3 alnar) | Famnar() |
ToFamnar() |
1.8831 |
| Ref (¼ old mil) | Ref() |
ToRef() |
2672 |
| Old Swedish mile (landmil, pre-1889) | SwedishMiles() |
ToSwedishMiles() |
10,688 |
| Unit | Create | Convert back | Factor (→ m) |
|---|---|---|---|
| Light-second | LightSeconds() |
ToLightSeconds() |
299,792,458 |
| Light-minute | LightMinutes() |
ToLightMinutes() |
17,987,547,480 |
| Light-hour | LightHours() |
ToLightHours() |
1,079,252,848,800 |
| Light-day | LightDays() |
ToLightDays() |
25,902,068,371,200 |
| Light-year | LightYears() |
ToLightYears() |
9,460,730,472,580,800 |
| Astronomical unit (AU) | AstronomicalUnits() |
ToAstronomicalUnits() |
149,597,870,700 |
| Parsec | Parsecs() |
ToParsecs() |
3.085677581e16 |
| Kiloparsec | Kiloparsecs() |
ToKiloparsecs() |
3.085677581e19 |
| Megaparsec | Megaparsecs() |
ToMegaparsecs() |
3.085677581e22 |
| Gigaparsec | Gigaparsecs() |
ToGigaparsecs() |
3.085677581e25 |
This namespace also has ToKesselRun(this Distance d) — see Advanced Usage.
| Unit | Create | Convert back | Factor (→ m) |
|---|---|---|---|
| Ångström | Angstroms() |
ToAngstroms() |
1e-10 |
| Picometer | Picometers() |
ToPicometers() |
1e-12 |
| Femtometer | Femtometers() |
ToFemtometers() |
1e-15 |
| Attometer | Attometers() |
ToAttometers() |
1e-18 |
| Bohr radius | BohrRadii() |
ToBohrRadii() |
5.29177210903e-11 |
| Planck length | PlanckLengths() |
ToPlanckLengths() |
1.616255e-35 |
| Operator | Signature | Behavior |
|---|---|---|
==, !=
|
Distance, Distance |
Value equality on Meters
|
<, >, <=, >=
|
Distance, Distance |
Compares Meters
|
+ |
Distance + Distance |
Adds Meters
|
- |
Distance - Distance |
Subtracts Meters
|
* |
Distance * double |
Scales Meters by a factor |
/ |
Distance / double |
Divides Meters by a divisor, returns Distance
|
/ |
Distance / Distance |
Divides Meters by Meters, returns double (ratio) |
No enums are defined in this package.