如何处理大数加减乘除,解决精度丢失问题

当我们处理大数的加减乘除的时候,直接加减会出现精度丢失的问题,或者出现科学记数法带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) //会返回可展示的数据


 

 

 

posted @ 2023-02-10 17:05  小不点灬  阅读(72)  评论(0编辑  收藏  举报