1、經常遇到前端計算金額的時候出現精度誤差問題,導致前后端計算的金額不一致導致校驗過不去的情況,相信有不少人寫過Math.floor(e*100)/100來實現保留2位小數,但是這么寫就會出現上面的精度問題。怎么解決呢?這里使用的是decimal.js庫。
2、npm安裝decimal.js。
npm install decimal.js
3、引入。
import { Decimal } from 'decimal.js';
?4、創建Decimal對象:可以使用Decimal構造函數創建一個Decimal對象,并傳入要進行計算的數字。
const num1 = new Decimal(0.145);
const num2 = new Decimal('0.145');
5、執行精確計算:使用Decimal對象調用各種計算方法,以獲得高精度的計算結果。
const sum = num1.plus(num2); // 加法
const difference = num1.minus(num2); // 減法
const product = num1.times(num2); // 乘法
const quotient = num1.dividedBy(num2); // 除法
// 還有其他常用的方法,如取模、冪運算等
6、獲取計算結果:使用toNumber()方法將Decimal對象轉換為JavaScript原生的Number類型,以便在Vue組件中使用。
const result = sum.toNumber();