【前端js】之小数点保留时的四舍五入问题
项目遇到金额小数点保留位数,极个别的数会差一分,经调查是因为js的问题。
解决办法:
# 方法一:保留两位小数 function keepTwoDecimal(num) { var result = parseFloat(num); if (isNaN(result)) { alert('传递参数错误,请检查!'); return false; } result = Math.round(num * 100) / 100; return result; } # 方法二:保留任意小数 function round(num, decimal) { if (isNaN(num)) { return 0; } const p1 = Math.pow(10, decimal + 1); const p2 = Math.pow(10, decimal); return Math.round(num * p1 / 10) / p2; } function toFixed(num, decimal) { return round(num, decimal).toFixed(decimal); }
网上找到了一些参考资料:
感谢:laozhang的《js保留两位小数方法总结》
感谢:逐梦博客的《js小数点保留时的四舍五入问题的处理》
不积跬步,无以致千里;不集小流,无以成江海。
如转载本文,请还多关注一下我的博客:https://www.cnblogs.com/Owen-ET/;
我的Github地址:https://github.com/Owen-ET————————————
无善无恶心之体, 有善有恶意之动, 知善知恶是良知, 为善去恶是格物。