一、介紹
- decimal.js是使用的二進制來計算的,所以可以更好地實現格化式數學運算,對數字進行高精度處理;使用decimal類型處理數據可以保證數據計算更為精確,還可以節省儲存空間。
二、解決問題
- 精度問題(金錢失真問題):當 對數據進行浮點運算時候,可能會因為丟失精度而導致奇怪的結果,這時使用decimal可以很好的解決該問題。
三、實例
下面用 浮點型數據地加減乘除和使用decimal進行加減乘除 對結果進行比較:
1、npm命令引入decimal.js文件
$ npm install --save decimal.js
/** Node.js */
var Decimal = require('decimal.js') /** ES6 方式 */ import { Decimal } from 'decimal.js'
2、使用
methods: { handleDecimalData() { //加法 var a1 = 0.13 var b1 = 0.25 let c1 = new Decimal(a1).add(new Decimal(b1)) console.log("加法運算 a1 + b1 =",a1 + b1) console.log("使用decimal.js a1 + b1 =",c1.toNumber()) //減法 var a2 = 1.0 var b2 = 0.99 let c2 = new Decimal(a2).sub(new Decimal(b2)) console.log("減法運算 a2 - b2 =",a2 - b2) console.log("使用decimal.js a2 - b2 =",c2.toNumber().toFixed(2)) //乘法 var a3 = 1.01 var b3 = 1.02 let c3 = new Decimal(a3).mul(new Decimal(b3)) console.log("乘法運算 a3 * b3 = ", a3 * b3) console.log("使用decimal.js a3 * b3 = ",c3.toNumber()) //除法 var a4 = 0.033 var b4 = 10 let c4 = new Decimal(a4).div(new Decimal(b4)) console.log("除法運算 a4 / b4 = ", a4 / b4) console.log("使用decimal.js a4 / b4 = ",c4.toNumber()) } }
結果: