flo-utils
Version:
65 lines (48 loc) • 1.61 kB
JavaScript
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;
;