A library for exact calculations with rational numbers

Usage no npm install needed!

<script type="module">
  import qExact from 'https://cdn.skypack.dev/q-exact';



A library to make exact calculations with rational numbers without rounding errors.

Compare this:

1 / 49 * 49 ▶ 0.9999999999999999

with this:

Q(1).over(49).times(49) ▶ 1

Q-exact overcomes some of the classic limitations of floating-point arithmetic by requiring that all results be expressed exactly, or not at all. Rational numbers in Q-exact are stored as products of prime factors. For example, -75/28 is represented as -2-2⋅3⋅52⋅7-1. There is no way to represent irrational numbers, Infinity or NaN.

See the Q Class Reference for further informations.

This is a preliminary documentation and may be subject to change at any time.