function i(e) { this.arr = []; this.len = 0; undefined == e && (e = "0"); this.base = e; this.init(); } i.prototype.init = function () { var e = this.base.slice(-1); if (e.charCodeAt() > 57) { var o = { K: 3, M: 6, B: 9, T: 12, P: 15, E: 18, Z: 21, Y: 24, N: 27, D: 30, S: 33, U: 36, Q: 39 }[e]; var t = this.base.slice(0, this.base.length - 1).split("."); for (var i = 0; i < o - 1; i++) { this.arr.push(0); } if (t.length > 1) { var n = parseInt(t[1]); n = Math.floor(n / Math.pow(10, t[1].length - 1)); this.arr.push(n); } else { this.arr.push(0); } var a = t[0].split(""); for (var c = a.length - 1; c >= 0; c--) { this.arr.push(parseInt(a[c])); } } else { var s = this.base.split(""); for (var l = s.length - 1; l >= 0; l--) { this.arr.push(parseInt(s[l])); } } this.len = this.arr.length; this.base = this.getShortString(); }; i.prototype.alterationBase = function () { var e = arguments.length > 0 && undefined !== arguments[0] ? arguments[0] : "0"; this.arr = []; this.len = 0; this.base = e; this.init(); }; i.prototype.plus = function (e) { var o = []; var t = Math.max(e.len, this.len); var i = false; for (var n = 0; n < t; n++) { if (undefined !== e.arr[n] && undefined !== this.arr[n]) { var a = e.arr[n] + this.arr[n]; if (i) { a += 1; i = false; } if (a >= 10) { i = true; o[n] = a % 10; } else { o[n] = a; } } else { var c = undefined !== e.arr[n] ? e.arr[n] : this.arr[n]; if (i) { c += 1; i = false; } if (c >= 10) { i = true; o[n] = c % 10; } else { o[n] = c % 10; } } } i && o.push(1); this.arr = o; this.len = this.arr.length; this.base = this.getShortString(); }; i.prototype.minus = function (e) { var o = []; if (e.len > this.len || e.len == this.len && this.arr[this.len - 1] < e.arr[this.len - 1]) { o.push(0); } else { var t = 0; var i = this.len; var n = 0; for (var a = 0; a < i && (n = this.arr[a], n -= t, a < e.len && (n -= e.arr[a]), n < 0 ? (t = 1, n += 10) : t = 0, !(n < 0)); a++) { o.push(n); } 0 != t && (o = [0]); } a = this.len = o.length; for (var c = -1; a-- && 0 == o[a];) { c = Math.max(1, a); } c >= 0 && o.splice(c, this.len - c); this.arr = o; this.len = this.arr.length; return this.base = this.getShortString(); }; i.prototype.mult = function (e) { var o = []; var t = 0; var i = e + ""; var n = Math.max(this.len, i.length); for (var a = 0; a <= n && (undefined != this.arr[a] || 0 != t); a++) { var c = 0; undefined !== this.arr[a] && (c = this.arr[a] * e); if (t > 0) { c += t; t = 0; } c > 9 && (t = Math.floor(c / 10)); c %= 10; o[a] = c; } if (t > 0) { if (t > 9) { var s = Math.floor(t / 10); t %= 10; o.push(t); o.push(s); } else { o.push(t); } } "10" == this.arr[0] || this.arr[1]; this.arr = o; this.len = this.arr.length; this.getShortString(); return this; }; i.prototype.mult2 = function (e) { var o = (e += "").split(""); var t = 0; var n = new i(); for (var a = o.length - 1; a >= 0; a--) { var c = new i().copy(this); c.mult(parseInt(e.charAt(a))); c.mult10(t); t++; n.plus(c); } this.copy(n); return this; }; i.prototype.mult10 = function (e) { for (undefined === e && (e = 1); e--;) { this.arr.unshift(0); } this.len = this.arr.length; return this; }; i.prototype.div = function (e) { var o = false; var t = []; var i = 0; var n = 0; var a = this.len; for (var c = 0; a--;) { c = 10 * i + this.arr[a]; n = Math.floor(c / e); if (o || n > 0) { t.push(n); o = true; } i = c % e; } this.len = t.length; if (0 == this.len) { this.arr = [1]; this.len = 1; } else { this.arr = t; this.arr.reverse(); } "10" == this.arr[0] || this.arr[1]; this.getShortString(); return this; }; i.prototype.getShortString = function () { var e = 0; var o = 0; var t = ""; var i = 0; if (1 == (e = this.len) && 0 == this.arr[0]) { return "0"; } o = e % 3; i = Math.floor(e / 3); if (0 == o) { o = 3; i--; } for (o = e - o; e-- > o;) { t += this.arr[e]; } i > 0 && this.arr[e] > 0 && (t += "." + this.arr[e]); return t + ["", "K", "M", "B", "T", "P", "E", "Z", "Y", "N", "D", "S", "U", "Q"][i]; }; i.prototype.getAnyNumStr = function () { var e = ""; for (var o = this.len - 1; o >= 0; o--) { e += this.arr[o]; } return e; }; i.prototype.bigger = function (e) { if (this.len > e.len) { return true; } if (this.len < e.len) { return false; } for (var o = this.len; o--;) { if (this.arr[o] > e.arr[o]) { return true; } if (this.arr[o] < e.arr[o]) { return false; } } return false; }; i.prototype.biggerIncludeEqual = function (e) { if (this.len > e.len) { return true; } if (this.len < e.len) { return false; } for (var o = this.len; o--;) { if (this.arr[o] > e.arr[o]) { return true; } if (this.arr[o] < e.arr[o]) { return false; } } return true; }; i.prototype.bigger2 = function (e) { if (this.len > e.len) { return true; } if (this.len < e.len) { return false; } for (var o = this.len; o--;) { if (this.arr[o] > e.arr[o]) { return true; } if (this.arr[o] < e.arr[o]) { return false; } } return true; }; i.prototype.copy = function (e) { this.arr = e.arr.concat(); this.len = e.len; this.base = e.base; this.getShortString(); return this; }; i.prototype.zero = function (e) { this.arr = []; this.len = 0; this.base = "0"; }; i.prototype.isZero = function (e) { return !(0 != this.len && 1 != this.len || 0 != this.arr.length && 0 != this.arr[0]); }; i.prototype.isOne = function (e) { return 1 != this.len || 1 != this.arr[0]; }; i.prototype.noZero = function () { if (this.isZero()) { this.arr = [1]; this.len = 1; this.base = "1"; } }; i.prototype.div10 = function (e) { undefined == e && (e = 1); for (; e > 0; e--) { this.arr.shift(); } this.len = this.arr.length; this.len <= 0 && this.zero(); this.getShortString(); return this; }; i.prototype.divPresent = function (e) { var o = this.len - e.len; if (o >= 3) { return 0; } if (o < -3) { return 10; } var t = Math.max(this.len, e.len); var i = ""; var n = ""; for (o = Math.min(3, t); o--;) { --t < this.len && (i += this.arr[t]); t < e.len && (n += e.arr[t]); } this.getShortString(); return parseFloat(n) / parseFloat(i); }; i.prototype.present100 = function (e) { if (0 == e) { return this; } else { if (e <= 1e3) { return this.mult(e).div10(2); } else { if (e <= 1e4) { return e = Math.floor(e / 10), this.mult(e).div10(1); } else { if (e <= 1e5) { return e = Math.floor(e / 100), this.mult(e); } else { return this.mult(e).div10(2); } } } } }; i.prototype.getDetails = function () { return { display: this.getShortString(), real: this.getAnyNumStr() }; }; module.exports = i;