JavaScript中如何向下取整保留1位小数,即使末尾为0也正常显示?
解决方案
你当前的实现返回的是数字类型,JavaScript 中数字类型的22和22.0存储逻辑完全等价,默认转字符串展示时会自动省略末尾的无意义小数位。要实现固定1位小数展示,只需在原有计算逻辑后追加字符串格式化处理即可。
修改后代码
// 原有向下取整逻辑保持不变,先得到精确的数值结果 const totalPrice = Math.floor( (parseFloat(product.price1['regionalPrice']) + parseFloat(product.price2['marketPrice']) + parseFloat(product.price3['localPrice']) ) * 10) / 10; // 转为固定1位小数的字符串用于页端展示 const displayPrice = totalPrice.toFixed(1);
说明
- 你原有向下取整的计算逻辑不需要改动,避免出现
toFixed默认四舍五入不符合需求的问题 - 如果你后续需要用总价做其他数值计算,直接使用
totalPrice这个数字类型变量即可,displayPrice专门用于页端文本展示 - 测试验证:
22.0会输出为"22.0",22.7312计算后会输出为"22.7",完全符合要求
内容的提问来源于stack exchange,提问作者bourne2077
相关产品推荐
相关产品推荐

