Units travel with values
A value is not just a number — it is a number with a unit. A home price is375000 USD; a term is 30 yr; a distance is 5.2 m. Because the unit is part of the
value, TrueMath can:
- Convert compatible units automatically. Adding
1 mand10 cmyields a length; you do not convert by hand. - Reject incompatible combinations. Adding a length to a mass is an error rather than a silently wrong number.
Model quantities as unit-carrying values
Units are a correctness layer, not decoration — the same role types play in a programming language. They are most valuable when you model a domain so that every dimensional quantity carries its unit, rather than reducing it to a bare number that assumes one. A term is30 yr, not a 30 that the rest of the domain has agreed to read as years. Carrying the unit is what lets TrueMath validate the value — a term supplied in inches is rejected, not silently used — and convert it without loss wherever it is needed. A bare number assumes its unit by convention, and that convention is invisible to both the engine and whoever supplies the value, so nothing catches a value entered in the wrong unit. The result is a confident, silently wrong answer of exactly the kind units exist to prevent.
The guidance follows: keep values in their units through the calculation, and reduce one to a bare number only at the point where a scalar number is genuinely required, with a single explicit conversion. Stripping a unit reflexively throws away the safety the engine was carrying for you — see When to strip a unit.
Full precision, no intermediate rounding
TrueMath carries values at full internal precision through every step of a calculation — roughly 15–16 significant digits — and that full-precision result is what every step computes with. An intermediate result is never rounded before it feeds the next step; rounding is applied only when a value is displayed, according to the variable’s display format. This matters in multi-step work. When a rounded value becomes the input to the next equation, small approximations compound into a meaningfully wrong answer. By keeping every intermediate value exact, TrueMath eliminates that drift — the difference is invisible in a single calculation and decisive in a long one.Display formatting changes how a value is shown, not how it is computed. The stored
value remains at full precision and is what subsequent steps use. Even a format set to
show a value’s natural precision displays at most 10 decimal places — the full-precision
value behind it is unchanged.

