Showing
1 changed file
with
12 additions
and
3 deletions
| @@ -8,11 +8,20 @@ export class NumberFormatterUtils { | @@ -8,11 +8,20 @@ export class NumberFormatterUtils { | ||
| 8 | */ | 8 | */ |
| 9 | static formatNumberWithWan(inputNumber: number | String): string { | 9 | static formatNumberWithWan(inputNumber: number | String): string { |
| 10 | const num = typeof inputNumber === 'number' ? inputNumber : Number(inputNumber); | 10 | const num = typeof inputNumber === 'number' ? inputNumber : Number(inputNumber); |
| 11 | - if (Number.isNaN(num) || num < 10000) { | 11 | + if (Number.isNaN(num)) { |
| 12 | + return ''; | ||
| 13 | + } else if (num < 10000) { | ||
| 12 | return num.toString(); | 14 | return num.toString(); |
| 13 | - } else { | 15 | + } else if (num < 100000000) { |
| 16 | + // 处理 1万到1亿之间的数字,使用万作为单位,小数点后为0则不显示 | ||
| 14 | const wanUnit = num / 10000; | 17 | const wanUnit = num / 10000; |
| 15 | - return `${wanUnit.toFixed(1)}万`; | 18 | + const formattedWan = wanUnit.toFixed(1); |
| 19 | + return formattedWan.endsWith('.0') ? `${Math.floor(wanUnit)}万` : `${formattedWan}万`; | ||
| 20 | + } else { | ||
| 21 | + // 数字达到1亿及以上时,转换为亿并处理小数点后为0的情况 | ||
| 22 | + const yiUnit = num / 100000000; | ||
| 23 | + const formattedYi = yiUnit.toFixed(1); | ||
| 24 | + return formattedYi.endsWith('.0') ? `${formattedYi.slice(0, -2)}亿` : `${formattedYi}亿`; | ||
| 16 | } | 25 | } |
| 17 | } | 26 | } |
| 18 | } | 27 | } |
-
Please register or login to post a comment