let illions = [ "", "k", "M", "B", "T", "qd", "Qn", "sx", "Sp", "O", "N", "de", "Ud", "DD", "tdD", "qdD", "QnD", "sxD", "SpD", "OcD", "NvD", "Vgn", "UVg", "DVg", "TVg", "qtV", "QnV", "SeV", "SPG", "OVG", "NVG", "TGN", "UTG", "DTG", "tsTG", "qtTG", "QnTG", "ssTG", "SpTG", "OcTG", "NoTG", "QdDR", "uQDR", "dQDR", "tQDR", "qdQDR", "QnQDR", "sxQDR", "SpQDR", "OQDDr", "NQDDr", "qQGNT", "uQGNT", "dQGNT", "tQGNT", "qdQGNT", "QnQGNT", "sxQGNT", "SpQGNT", "OQQGNT", "NQQGNT", "SXGNTL" ]; function numify(x) { x = x * 1; let il = Math.log(x) / Math.log(1000); il = Math.floor(il); let base = x / (1000 ** il); base = base.toString(); base = base.slice(0,Math.min(base.length,5)) if (il in illions && !isNaN(x) && Math.abs(x) != Infinity) { return `${base}${illions[il]}` } else if (x == 0 || isNaN(x) || Math.abs(x) == Infinity) { return `${x}`; } else if (x < 0) { return `-${numify(-x)}` } else if (x < 1) { return `1/${numify(1 / x)}` } else if (il > illions.length - 1) { return `10^${numify(Math.log10(x))}` } }