/** * 转换为带单位的短数据 * @param num 需要转换的数字(非数字 或是 - 将直接返回 -) * @param decimal 返回的小数位 * @param addUnit 返回值是否添加单位:(万或亿) * @param retInt 当数据小于1万时,是否返回无小数位的整数 */ export const transformShortNum = (num: any, decimal = 0, addUnit = true, retInt = false) => { let formatValue = parseFloat(num); if (isNaN(formatValue) || (num !== 0 && !num)) { return '-'; } let isNegativeNumber = false; let ret = ''; if (formatValue < 0) { isNegativeNumber = true; formatValue = Math.abs(formatValue); } if (formatValue >= 100000000) { ret = (formatValue / 100000000).toFixed(decimal) + (addUnit ? '亿' : ''); } else if (formatValue >= 10000) { ret = (formatValue / 10000).toFixed(decimal) + (addUnit ? '万' : ''); } else { ret = retInt ? formatValue.toFixed(0) : formatValue.toString(); ret = !retInt && !isNaN(decimal) ? formatValue.toFixed(decimal) : ret; } return isNegativeNumber ? `-${ret}` : ret; };