| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import { isNumber } from "./is.js";
- // 单位转换
- export function convertToUnit(str, unit = 'px') {
- if (str == null || str === '') {
- return undefined;
- } else if (isNaN(+str)) {
- return String(str);
- } else {
- return `${Number(str)}${unit}`;
- }
- }
- /**
- * 数据金额格式化
- * @param num 需要格式化的数字
- * @param place 补全保留小数位
- * @param decimal 小数位分隔符
- * @param separator 千位分隔符
- * @param prefix 前缀
- */
- export function formatNumber(num, opt = {}) {
- if (!num && num !== 0) {
- return '';
- }
- const place = opt?.place ?? 2;
- const decimal = opt?.decimal ?? '.';
- const separator = opt?.separator ?? ',';
- const prefix = opt?.prefix ?? '¥';
- num = num + '';
- const x = num.split('.');
- let right =
- num.indexOf('.') > -1
- ? x[1].substring(0, place)
- : new Array(place).fill(0).join('');
- // 位数补全
- if (right.length < place) {
- right = right + new Array(place - right.length).fill(0).join('');
- }
- let x1 = x[0];
- const x2 = decimal + right;
- const rgx = /(\d+)(\d{3})/;
- if (separator && !isNumber(separator)) {
- while (rgx.test(x1)) {
- x1 = x1.replace(rgx, '$1' + separator + '$2');
- }
- }
- return prefix + x1 + x2;
- }
|