问题重现:
console.log(10*2.88,'价格')
// 结果为 28.799999999999997
// 原因:
// 计算机能读懂的是二进制,进行运算的时候,实际上是把数字转换为了二进制进行的 // 这个过程 丢失了精度。
解决方法:
使用第三方插件:currency.js
// npm 下载
npm install --save currency.js
//yarn 下载
yarn add currency.js
// 使用方法一 引入到需要使用的页面
// 使用页面
import currency from 'currency.js'
currency(numarr[0]).multiply(numarr[1])
// currency.js 还拥有对数据的格式化功能 在这就不再赘述
// 2022-12-17 发现问题 currency 结果为3位小数时 第四位会四舍五入
currency(x).multiply(y) | 代表x乘上y |
currency(x).add(y) | 代表x加上y |
currency(x).subtract(y) | 代表x减上y |
currency(x).divide(y) | 代表x除上y |