flo-utils
Version:
52 lines (41 loc) • 1.25 kB
JavaScript
/**
* @name numPoints 数字千分符,支持小数
* @param {*} num
* @param {number} [precision], 不传则返回所以小数部分
* @return {string}
* @example
*
* numPoints(1001);
* => '1,001.00'
*
* numPoints('sd');
* => 'sd'
*/
import toNumber from 'lodash/toNumber';
import isNumber from 'lodash/isNumber';
import beNaN from './beNaN';
import { consoleWran } from './warn/util';
function numPoints(num, precision) {
var toNum = toNumber(num);
if (precision && !isNumber(precision)) {
consoleWran('srcond param type is number');
return num || '';
}
if (beNaN(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;
}
export default numPoints;