import currency from "currency.js";
import {evaluate} from "mathjs";


export default class NumberFormatter {
    static round(num: number, precision: number = 2): number {
        return currency(num, {precision}).value;
    }

    static format(num: number, precision: number = 2, separator: string = ' ', decimal: string = '.', currencySymbol: string = ''): string {
        return currency(num, {
            separator,
            decimal,
            precision,
            symbol: currencySymbol,
            pattern: `#!`
        }).format();
    }

    static evaluateAndRound(expression: string): number {
        return NumberFormatter.round(evaluate(expression));
    }
}