decimal
Arbitrary-precision fixed-point decimal numbers in go
...This makes sense for its use-case, but the trade-off is that the API is awkward and easy to misuse. In contrast, it's difficult to make such mistakes with decimal. Decimals behave like other go numbers types: even though a = b will not deep copy b into a, it is impossible to modify a Decimal, since all Decimal methods return new Decimals and do not modify the originals. The downside is that this causes extra allocations, so Decimal is less performant.