Skip to content

Advanced Usage

Marcus Ackre Medina edited this page Sep 13, 2026 · 1 revision

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.

Mixing meteorological, medical, and industrial units

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();

Ratio division

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.05

Dividing a Pressure by a double instead scales it down and still returns a Pressure:

Pressure half = engine / 2.0;

Comparisons across unit families

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)

Formatting

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".

Clone this wiki locally