I changed a bit the interface to prevent losing a feature.
Often, when formatting currency, it's convenient to have more info, hence formatting 999 999 -> 1000k. On the other hand, when formatting numbers (as the number of attendants to an event), such precision is often useless, and we would prefer 999 999 -> 1m.
To allow such a behavior, I introduced lowPrecision: Boolean with the following behavior:
when true, it will always format as 1m
when false, it will always format as 1000k
when undefined, it will be true when formatting currency, false otherwise
I think this was a breaking change; I get format errors now whenever using formatCurrency() without specifying average. It seems it injects lowPrecision in there regardless of if average is currently being used or not.