must be positive.
numerator/denominator divided by their GCD.
lossy for numerator/denominator magnitudes
beyond Number's safe range — documented, not hidden.
StaticfromExact, not approximate: every finite JS number is a binary
fraction (mantissa × 2^exponent), so this decomposes it into an
exact rational (a power-of-2 denominator) rather than
approximating a decimal value the way DXNDecimal.fromNumber
necessarily does.
DXN
rational(int/uint) — an exact ratio, stored exactly as given and never silently reduced:22/7and44/14are distinct DXN values (DXN.mdcalls it "exact ratio," not "exact reduced ratio"), so reducing on parse/construction would be a silent, opinionated transformation.reduce()is offered but never called implicitly — mirrorsDextrin.Rationalexactly.