js两位小数转为整数

现在使用了mathjs库去解决小数的问题

 

 

!!!!!!!!!!以下已经废弃,通过测试还是有问题。这里只是自己记录下。

 

场景:前端输入的单位是元,但是传给后端的单位是分。

原因:由于js的小数计算会出现精度问题,所以先转为整数在计算

解决:先将传入的小数转为整数,转为整数时幂数要多乘以10,最后在除以10转换回来,还是因为精度问题

function goInt(num, squareNum = 2) {
const len = num.toString().split('.').length
if (len <= 2) {
if (!Number.isNaN(num)) { // 是数字
const baseNum = Math.pow(10, (squareNum + 1))
const tempNum = Math.round(num * baseNum)
return parseInt(tempNum / 10)
}
}
}

测试用例:
console.log(goInt(0))
console.log(goInt(3))
console.log(goInt(3.4))
console.log(goInt(6.78))
console.log(goInt(8.456))
console.log(goInt(9.1234))
console.log(goInt('1.2333.21567'))
console.log(goInt('-4.567.898'))
console.log(goInt(-4.56789))
console.log(goInt(-2.2))
console.log(goInt(-8))
console.log(goInt(19948.51))

posted on 2019-05-23 14:22  daV_chen  阅读(3374)  评论(0编辑  收藏  举报

导航