aboutsummaryrefslogtreecommitdiff
path: root/resources/assets/javascripts/lib/number_formatter.js
blob: a58c4c50b26509907655540e99ca06370e754463 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
export const numberFormatter = (number, digits) => {
    const lookup = [
        { value: 1, symbol: "" },
        { value: 1e3, symbol: "k" },
        { value: 1e6, symbol: "M" },
        { value: 1e9, symbol: "G" },
        { value: 1e12, symbol: "T" },
        { value: 1e15, symbol: "P" },
        { value: 1e18, symbol: "E" }
    ];
    const regexp = /\.0+$|(?<=\.[0-9]*[1-9])0+$/;
    const item = lookup.findLast(item => number >= item.value);

    if (!item) {
        return "0";
    }

    let formattedNumber = (number / item.value).toFixed(digits).replace(regexp, "").replace(".", ",");

    return formattedNumber + item.symbol;
}