如何在JavaScript中为金额数值添加单位后缀
JavaScript 大额金币数值格式化实现代码
以下代码完全匹配你提出的5步处理逻辑:
// 可自定义后缀列表,按数值量级从低到高排列 const CUSTOM_SUFFIXES = ['', 'thousand', 'million', 'billion', 'trillion']; function formatGameGold(goldNum) { // 低于100万直接返回原数字 if (goldNum < 1000000) return goldNum.toString(); // 转为字符串方便逐位处理 const goldStr = Math.floor(goldNum).toString(); // 1. 提取前两位有效数字 const firstTwo = goldStr.slice(0, 2); // 2. 移除前两位数字,获取剩余数字序列 const restDigits = goldStr.slice(2); // 3. 计算对应后缀索引:剩余长度除以3后减1匹配0起始索引 const suffixIndex = Math.floor(restDigits.length / 3); // 拼接格式化结果 const decimalPart = restDigits[0] === '0' ? '' : `.${restDigits[0]}`; return `${firstTwo[0]}${decimalPart} ${CUSTOM_SUFFIXES[suffixIndex + 1]}`; }
测试用例
- 输入
1234567→ 输出1.2 million - 输入
1000000→ 输出1 million - 输入
1890000000→ 输出1.8 billion
可调优项
- 若需要展示更多小数位,可修改
restDigits[0]逻辑,截取前N位剩余数字作为小数部分 - 后缀列表可直接替换为中文单位(如
['', '千', '万', '亿']),如需适配中文万级单位规则,仅需调整索引计算逻辑即可 - 若游戏金币存在小数,可在函数开头添加
goldNum = Math.round(goldNum)统一取整后处理
内容的提问来源于stack exchange,提问作者terriblecoder143
相关产品推荐
相关产品推荐

