目录
### 方法3:parseFloat() ,较为准确==》
方法1: parseInt + toFixed
/*
* 保留2位小数,不四舍五入
* 5.992550 =>5.99 , 2 => 2.00
* */
const toFixed2Decimal = (value) => {
return (parseInt(value*100)/100).toFixed(2)
}
console.log(587.67*100)
console.log(toFixed2Decimal(587.67))
console.log(toFixed2Decimal(-0.1123456))
console.log(toFixed2Decimal(-1))
console.log(toFixed2Decimal('-12.999'))
console.log(toFixed2Decimal('-12.99999'))
module.exports = {
toFixed2Decimal: toFixed2Decimal
}
输出 :
58766.99999999999
587.66
-0.11
-1.00
-12.99
-12.99
有问题: 587.67 转换之后 587.66
方法2:Math.floor + tofixed
const toFixed2Decimal = (value) => {
return (Math.floor(value*100)/100).toFixed(2)
}
console.log(toFixed2Decimal(-0.1123456))
console.log(toFixed2Decimal(-1))
console.log(toFixed2Decimal('-12.999'))
console.log(toFixed2Decimal('-12.99999'))
输出:
-0.12
-1.00
-13.00
-13.00
有问题-12.99 得出-13.00
想哭啊。2种方法出来的钱的值都不对。
### 方法3:parseFloat()
const toFixed2Decimal2 = (value) => { return (parseFloat(value * 100) / 100).toFixed(2) } console.log(toFixed2Decimal2(67.49)) console.log(toFixed2Decimal2(5.992550)) console.log(toFixed2Decimal2(2)) console.log(toFixed2Decimal2(12.99))
返回的值都是正确的。
目前稍微准确的转换,保留2个小数。