# CompoundMath

A library enabling precise decimal calculations based on the EVM's integer arithmetic.

Because the EVM does not support floating points, the Compound protocol's calculations are carried out using a

**WAD-point number system**which allows manipulating decimal numbers using a fixed-point representation, the unit being the`WAD = 1e18`

.Given two WAD-point numbers

`x`

and `y`

, their multiplication is defined as `x * y / WAD`

Given two WAD-point numbers

`x`

and `y`

, their division is defined as `x * WAD / y`

The operation is wrapped inside a first-place

`WAD`

multiplication and last-place `WAD`

division to cancel its effect. The purpose of this is to keep at least 18 significant digits (the precision of the base: the `WAD`

) in the result.Last modified 3mo ago