前言
最近在做一个ERP的项目,里面涉及到了很多的计算,尤其特别是有很多关于浮点数的计算,然后就碰到了下面的问题。
问题描述 & 解决方案
1.使用toFixed
or Math.round
进行四舍五入
&保留两位小数
会有5
不进1
的情况
举个🌰,我在开发的过程中遇到了321201.595
这个数字…
然后我想对他进行四舍五入 & 保留两位小数,一开始不太了解 toFixed
有那么多坑,所以直接用的.toFixed(2)
,结果如下:
const number = 321201.595;
console.log(number.toFixed(321201.595)) // '321201.59'
没错,结果不对,少了那么0.01
,后端算出来是321201.60
,所以校验不通过,我得再处理,网上翻了很多资料,都说用Math.round
可以做到四舍五入 & 保留两位小数,是这么做的,结果如下:
const number = 321201.595;
console.log(Math.round(number * 100) / 100) // 321201.59
没错