js金额小数点后两位的精准计算

715 阅读1分钟

金额小数点后两位的精准计算

关于金额方面的小数点计算,不建议使用toFiexd()方法,这属于四舍五入的计算,因此直接采用Math.floor()向下取整

例:

Math.floor(33.3333 * 100 + 0.01) / 100

加上0.01是解决js计算带来的误差问题

或:

Math.floor(33.3333 * 10 + 0.1) / 10
Math.floor(33.3333 * 1000 + 0.001) / 1000

以此类推,保留几位小数就加上相应的小数即可。

保留两位小数的方法:

正则:
let num = num.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')

注意:num为字符串类型