js保留两位小数的合理处理方法
发表于:2021-07-14 09:03:25浏览:5086次
js如何保留两位或者多位小数?相信大家的第一反应可能是使用 toFixed() 方法,但是使用这个方法在小数位不足的情况下会在后面补 0,比如:
const num = 0.6; num.toFixed(2) // 0.60
严格来说,这个结果是不符合要求的,还有一个需要注意的问题,js的运算属于弱运算,小数的相加结果可能并不符合预期,相信很多开发者也碰到过,比如:
console.log(0.2 + 0.4) // 0.6000000000000001
所以这里建议使用 Math.floor() 方法来处理小数位比较合适,先给结果乘以 100,再通过 Math.floor() 取得整数部分,然后再除以 100,最后得到符合要求的结果,比如:
const num1 = 0.5; const num2 = 0.62352; Math.floor(num1 * 100)/100 // 0.5 Math.floor(num2 * 100)/100 // 0.62
如果要保留更多为小数就以此类推了,比如保留三位小数:
const num1 = 0.5; const num2 = 0.55; const num3 = 0.62352; Math.floor(num1 * 1000)/1000 // 0.5 Math.floor(num2 * 1000)/1000 // 0.55 Math.floor(num3 * 1000)/1000 // 0.623
虽然过程比toFixed方法多了一个处理步骤,但是得到的结果更理想。
推荐文章
- 主流“OpenClaw养虾”产品全解析:腾讯、字节、阿里、百度、小米、智谱、Kimi,哪只“虾”最适合你?
- 微软推出电脑管家,干净无广告无弹窗,是时候卸载360安全卫士和腾讯电脑管了
- Thinkphp6使用Dompdf将HTML转换为PDF,并且支持中文
- CSS @media print控制浏览器web打印样式
- 开源的Linux 服务器运维管理面板1Panel V2 版本正式发布
- Figma封禁大疆,蓝湖MasterGo上线“Figma文件导入功能”
- Layui的table模块导出所有数据,无需修改代码,完美解决方案
- 2023最新阿里云域名优惠口令(长期有效)
- JS检测移动设备环境:WeChat、Android、IOS
- ThinkPHP部署到Apache的详细步骤

