如何使用JavaScript的Intl API将数字显示为1K、1M、1B格式?
使用JavaScript Intl API实现数字千位缩写格式化
你可以用Intl.NumberFormat替代原来的硬判断逻辑,这个API不仅能处理1000转1K的场景,还能自动适配更大的数字(比如百万转M),代码更简洁通用:
// 定义格式化函数 const formatCompactNumber = (number) => { return new Intl.NumberFormat('en-US', { notation: 'compact', // 指定紧凑表示法 compactDisplay: 'short' // 使用短缩写(K、M等,而非"千""百万") }).format(number); }; // 测试用例 console.log(formatCompactNumber(1000)); // 输出 "1K" console.log(formatCompactNumber(1250)); // 输出 "1.3K" console.log(formatCompactNumber(999999)); // 输出 "1M" console.log(formatCompactNumber(500)); // 输出 "500"
关键参数说明
'en-US':指定语言环境,确保缩写用英文的K/M等;如果需要中文缩写可以换成'zh-CN',会输出"1千"这种格式notation: 'compact':开启数字的紧凑格式化模式compactDisplay: 'short':选择短格式的缩写,对应的长格式'long'会输出"1 thousand"这种完整单词
这个方案比原来的硬判断灵活得多,不需要为每个数字区间写条件分支,API会自动处理不同量级的数字格式化。
内容的提问来源于stack exchange,提问作者Amitabh Anand
相关产品推荐
相关产品推荐

