如何处理大数加减乘除,解决精度丢失问题
当我们处理大数的加减乘除的时候,直接加减会出现精度丢失的问题,或者出现科学记数法带e,这样我们在显示的时候就不合理,我看了好多的文章大部分都是将数字分割成字符串进行拼接转换,个人感觉太麻烦了,而且使用范围不广,推荐使用ethers 第三方工具
安装使用
注意:ethers 是面向区块链Dapp开发的一个三方库,所以处理的一般都是18位的大数,处理之后的数据也是大数字符串需要进一步处理 https://www.cnblogs.com/ximenchuifa/category/2198898.html
yarn add ethers npm i ethers import { BigNumber, utils } from 'ethers'
//BigNumber.from(字符串)
//加
const total = BigNumber.from(data.total_base_power)
.add(data.total_overlay_power)
.toString()
//减
const total = BigNumber.from(data.total_base_power)
.sub(data.total_overlay_power)
.toString()
//乘
const total = BigNumber.from(data.total_base_power)
.mul(data.total_overlay_power)
.toString()
//除
const total = BigNumber.from(data.total_base_power)
.div(data.total_overlay_power)
.toString()
getResultData(total) //会返回可展示的数据
不停学习,热爱是源源不断的动力。