@pefish/js-node-assist
Version:
assistance tool of node
79 lines • 2.17 kB
JavaScript
;
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