如何在JavaScript中将数字格式化为保留两位小数的字符串?
数字转固定两位小数格式字符串的实现
需求说明
将number类型变量按以下规则转换为字符串:
- 整数(含0)转换为
"XX.00"格式 - 小数保留两位小数,末尾不足两位补零
示例
- 输入
18(number)→ 输出"18.00" - 输入
18.1(number)→ 输出"18.10" - 输入
18.11(number)→ 输出"18.11"
实现方案
方案1:直接使用toFixed(2)
toFixed(2)方法会自动将数字格式化为保留两位小数的字符串,完全匹配需求:
function formatNumber(num) { return num.toFixed(2); } // 测试用例 console.log(formatNumber(18)); // "18.00" console.log(formatNumber(18.1)); // "18.10" console.log(formatNumber(18.11)); // "18.11"
方案2:处理浮点数精度问题
如果遇到浮点数精度异常(如0.1 + 0.2 = 0.30000000000000004),可以先通过取整消除精度误差,再格式化:
function formatNumber(num) { return (Math.round(num * 100) / 100).toFixed(2); } // 测试精度场景 console.log(formatNumber(0.1 + 0.2)); // "0.30"
内容的提问来源于stack exchange,提问作者juju11
相关产品推荐
相关产品推荐

