UNPKG

flo-utils

Version:
65 lines (48 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _toNumber = _interopRequireDefault(require("lodash/toNumber")); var _isNumber = _interopRequireDefault(require("lodash/isNumber")); var _beNaN = _interopRequireDefault(require("./beNaN")); var _util = require("./warn/util"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @name numPoints 数字千分符,支持小数 * @param {*} num * @param {number} [precision], 不传则返回所以小数部分 * @return {string} * @example * * numPoints(1001); * => '1,001.00' * * numPoints('sd'); * => 'sd' */ function numPoints(num, precision) { var toNum = (0, _toNumber.default)(num); if (precision && !(0, _isNumber.default)(precision)) { (0, _util.consoleWran)('srcond param type is number'); return num || ''; } if ((0, _beNaN.default)(toNum)) return num || ''; var str = precision ? "".concat(toNum.toFixed(precision)) : "".concat(toNum); var decimal = str.split('.')[1] || ''; // 小数部分 var inter = str.split('.')[0] || ''; // 整数部分 var revInter = inter.replace(/(?=(?!\b)(\d{3})+$)/g, ','); if (precision) { var add0 = new Array(precision + 1).join(0).split('').join(''); if (decimal.length < precision) { decimal += add0; } return "".concat(revInter, ".").concat(decimal); } if (precision === 0) { return revInter; } return decimal ? "".concat(revInter, ".").concat(decimal) : revInter; } var _default = numPoints; exports.default = _default;