Repository navigation
Advanced Usage
This library is intentionally simple — a single struct with unit extension methods and standard operators. There isn't a large surface of advanced features, but a few things are worth calling out.
Because every Pressure is stored internally as pascals, you can freely combine creation methods across namespaces — a European weather report in hectopascals, a US tire gauge in psi, a medical reading in mmHg:
using MarcusMedina.Units.Pressure.Metric;
using MarcusMedina.Units.Pressure.US;
using MarcusMedina.Units.Pressure.Scientific;
Pressure combined = 1013.25.Hectopascals() + 120.MmHg();
double pascals = combined.ToPascals();Dividing one Pressure by another returns a plain double ratio (not a Pressure), useful for "how many times higher" comparisons:
using MarcusMedina.Units.Pressure.US;
using MarcusMedina.Units.Pressure.Scientific;
Pressure engine = 1.Ksi();
Pressure atm = 1.Atm();
double ratio = engine / atm; // ≈ 68.05Dividing a Pressure by a double instead scales it down and still returns a Pressure:
Pressure half = engine / 2.0;Pressure implements IComparable<Pressure> and all six comparison operators, so values from unrelated unit families compare correctly without manual conversion:
using MarcusMedina.Units.Pressure.US;
using MarcusMedina.Units.Pressure.Scientific;
bool higher = 14.7.Psi() > 1.Atm(); // true — 14.7 psi ≈ 101,353 Pa, just above 1 atm (101,325 Pa)Pressure.ToString() prints the pascal value using invariant culture, formatted as "{value} Pa":
Console.WriteLine(1.Bar()); // "100000 Pa"There is no built-in support for formatting in a different unit — call the relevant To...() method and format the double yourself if you need e.g. "1 bar" or "14.7 psi".