UNPKG

@pefish/js-node-assist

Version:
79 lines 2.17 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EndianType = void 0; const bignumber_js_1 = __importDefault(require("bignumber.js")); class NumberUtil { /** * 转换成BigNumber对象 * @returns {BigNumber} */ static toBigNumber(src) { const BN = bignumber_js_1.default.clone({ EXPONENTIAL_AT: 1e+9 }); return new BN(src); } /** * 转换成 BigInt 对象 * @returns {BigNumber} */ static toBigInt(src) { return BigInt(src); } /** * 转换为二进制字符串 * @returns {string} */ static toBinString(src) { return src.toString(2); } /** * 转换为八进制字符串 * @returns {string} */ static toOctString(src) { return src.toString(8); } /** * 转换为十六进制字符串 * @returns {string} */ static toHexString(src) { return src.toString(16); } // 转成int类型,直接溢出截取 static toInt(src) { return parseInt(src.toString(10), 10); } // number写入字节集 static toBuffer(src, endian = EndianType.BigEndian) { const buf = Buffer.alloc(8); if (endian === EndianType.BigEndian) { buf.writeDoubleBE(src, 0); } else if (endian === EndianType.LittleEndian) { buf.writeDoubleLE(src, 0); } else { throw new Error(`endian error`); } return buf; } static toNoScientificString(src) { const BN = bignumber_js_1.default.clone({ EXPONENTIAL_AT: 1e+9 }); const num1 = new BN(src); return num1.toString(); } } exports.default = NumberUtil; var EndianType; (function (EndianType) { EndianType[EndianType["BigEndian"] = 0] = "BigEndian"; EndianType[EndianType["LittleEndian"] = 1] = "LittleEndian"; })(EndianType || (exports.EndianType = EndianType = {})); //# sourceMappingURL=number.js.map