# 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⋅5^{2}⋅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.*