millifytolongify
Version:
" # millify & longify numbers"
83 lines (82 loc) • 2.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertToMillify = exports.numberWithCommas = exports.convertToLongForm = void 0;
function convertToLongForm(value, inDecimalFormat) {
if (inDecimalFormat === void 0) { inDecimalFormat = true; }
var amtSeparator = "";
var fullNumber = 0;
value = value.split(",").join("");
value = value.toUpperCase();
if (value.includes("K")) {
amtSeparator = "K";
fullNumber = parseFloat(value.split(amtSeparator)[0]) * 1000;
}
else if (value.includes("M")) {
amtSeparator = "M";
fullNumber = parseFloat(value.split(amtSeparator)[0]) * Math.pow(10, 6);
}
else if (value.includes("B")) {
amtSeparator = "B";
fullNumber = parseFloat(value.split(amtSeparator)[0]) * Math.pow(10, 9);
}
else if (value.includes("T")) {
amtSeparator = "T";
fullNumber = parseFloat(value.split(amtSeparator)[0]) * Math.pow(10, 12);
}
else if (value.includes("Q")) {
amtSeparator = "Q";
fullNumber = parseFloat(value.split(amtSeparator)[0]) * Math.pow(10, 15);
}
if (fullNumber === 0) {
return numberWithCommas(value, inDecimalFormat);
}
else {
return numberWithCommas(fullNumber, inDecimalFormat);
}
}
exports.convertToLongForm = convertToLongForm;
function numberWithCommas(value, inDecimalFormat) {
if (inDecimalFormat) {
return Number(parseFloat(value).toFixed(2)).toLocaleString("en", {
minimumFractionDigits: 2
});
}
else {
return Number(parseFloat(value).toFixed(0)).toLocaleString("en", {});
}
}
exports.numberWithCommas = numberWithCommas;
function convertToMillify(value, args) {
if (isNaN(value)) {
return null;
}
if (value === null) {
return null;
}
if (value === 0) {
return "0";
}
var abs = Math.abs(value);
var rounder = Math.pow(10, 1);
var isNegative = value < 0;
var key = "";
var powers = [
{ key: "Q", value: Math.pow(10, 15) },
{ key: "T", value: Math.pow(10, 12) },
{ key: "B", value: Math.pow(10, 9) },
{ key: "M", value: Math.pow(10, 6) },
{ key: "K", value: 1000 }
];
for (var _i = 0, powers_1 = powers; _i < powers_1.length; _i++) {
var i = powers_1[_i];
var reduced = abs / i.value;
reduced = Math.round(reduced * rounder) / rounder;
if (reduced >= 1) {
abs = reduced;
key = i.key;
break;
}
}
return (isNegative ? "-" : "") + abs + key;
}
exports.convertToMillify = convertToMillify;