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))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM