BigNumber.js数值计算-解决精度问题
BigNumber.js-文档
特征
- 整数和小数
- 简单的API,但功能齐全
- 比Java的BigDecimal的JavaScript版本更快,更小,甚至更容易使用
- 缩小并压缩8 KB
- 复制
toExponential
,toFixed
,toPrecision
和toString
JavaScript的数字类型的方法- 包含
toFraction
和正确舍入的squareRoot
方法- 支持加密安全的伪随机数生成
- 没有依赖关系
- 广泛的平台兼容性:仅使用JavaScript 1.5(ECMAScript 3)功能
- 全面的文档和测试集
用法
加法 plus
- 语法
.plus(n [, base])
- 参数值
n
(必需):number|string|BigNumber
参与计算的数字base
:number
进制 (默认为十进制)
- 返回值
BigNumber
- 举例
1. 0.1 + 0.2 // 0.30000000000000004
2. x = new BigNumber(0.1)
3. y = x.plus(0.2) // '0.3'
4. BigNumber(0.7).plus(x).plus(y) // '1'
5. x.plus('0.1', 8) // '0.225'
减法 minus
- 语法
.minus(n [, base])
- 参数值
n
(必需):number|string|BigNumber
参与计算的数字base
:number
进制 (默认为十进制)
- 返回值
BigNumber
- 举例
1. 0.3 - 0.1 // 0.19999999999999998
2. x = new BigNumber(0.3)
3. x.minus(0.1) // '0.2'
4. x.minus(0.6, 20) // '0'
乘法 multipliedBy
- 语法
.times(n [, base])
- 参数值
n
(必需):number|string|BigNumber
参与计算的数字base
:number
进制 (默认为十进制)
- 返回值
BigNumber
- 举例
1. 0.6 * 3 // 1.7999999999999998
2. x = new BigNumber(0.6)
3. y = x.multipliedBy(3) // '1.8'
4. BigNumber('7e+500').times(y) // '1.26e+501'
5. x.multipliedBy('-a', 16) // '-6'
除法 dividedBy
- 语法
.div(n [, base])
- 参数值
n
(必需):number|string|BigNumber
参与计算的数字base
:number
进制 (默认为十进制)
- 返回值
BigNumber
- 举例
1. x = new BigNumbejr(113)
3. x.dividedBy(y) // '3.14159292035398230088'
4. x.div(5) // '71'
5. x.div(47, 16) // '5'
注意
结果转换
x = new BigNumber(255.5)
x.toExponential(5) // "2.55500e+2"
x.toFixed(5) // "255.50000"
x.toPrecision(5) // "255.50"
x.toNumber() // 255.5
BigNumber.js数值计算-解决精度问题相关推荐
- 技术内参 | 数据分析,如何解决精度丢失的问题?
本文由神策数据技术大咖皮成投稿 谈到大数据技术,数据采集和计算是永远绕不开的话题,采集的准确度.计算的精度都是做数据分析的前提条件. 神策数据服务的客户覆盖互联网各个细分领域,其中不乏有做目前大火的虚 ...
- big.js、bignumber.js 和 decimal.js 的区别
原文网址:big.js.bignumber.js 和 decimal.js 的区别_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍3个JavaScript的数字处理第三方库的区别,它们是:bi ...
- 加mp4文件后js失效_Jquery方法load之后导致js失效解决方法
Jquery方法load之后导致js失效解决方法 >>>>>>>>>>>>>>>>>>> ...
- [js] 如何避免JS浮点运算的精度问题(例:0.1+0.7=0.7999999999999999)
[js] 如何避免JS浮点运算的精度问题(例:0.1+0.7=0.7999999999999999) function precision(num1,num2){num1Length = num1.t ...
- IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层、Dialog的问题
IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层.Dialog的问题 参考文章: (1)IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层.Dialog的 ...
- [转] js前端解决跨域问题的8种方案(最新最全)
[转] js前端解决跨域问题的8种方案(最新最全) 参考文章: (1)[转] js前端解决跨域问题的8种方案(最新最全) (2)https://www.cnblogs.com/chris-oil/p/ ...
- vue js中解决二进制转图片显示问题
一:问题 工作中碰到的问题,在处理接口返回的验证码图片时,由于返回的是encode编码代码,在js端获取到数据之后,通过函数encodeURI()来进行解码,之后可以通过在src中设置来实现图片显示: ...
- 利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功能)
利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功能) 参考文章: (1)利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功 ...
- npm突然找不到D:\nodejs\node_modules\npm\bin\npm-cli.js的解决方法
npm突然找不到D:\nodejs\node_modules\npm\bin\npm-cli.js的解决方法 参考文章: (1)npm突然找不到D:\nodejs\node_modules\npm\b ...
最新文章
- android 启动app过程,Android P APP冷启动过程全解析(之四)
- golang 切片 slice 去掉重复元素
- Android 监听 Android中监听系统网络连接打开或者关闭的实现代码
- BZOJ1415[Noi2005]聪聪和可可——记忆化搜索+期望dp
- Valid Sudoku
- android7.0 蓝牙定位,BluetoothAdapter在Android6.0/7.0+以上startDiscovery不能发现蓝牙设备问题...
- django mysql 过滤所有id_Django数据库中常用的过滤操作
- BAE3.0还不支持本地写入文件
- Spark Scala当中reduceByKey的用法
- 裁员见司品,程序员趁早准备退路
- mysql 基本操作和问题
- webp批量转换jpg_转换文件格式快人一步!右键菜单直接转换,支持图片、文档、视频等……...
- 基于better-scroll实现的类似ios选择器
- redis安装----非基于lnmp安装
- Tor源码分析十 -- 连接和链路
- 宝塔面板防火墙安装和使用教程详解
- win10系统云服务器配置,win10系统云服务器配置
- 美国信息互换标准代码 ASCⅡ
- 代码覆盖率工具lcov
- 根据ip查询真实地址
热门文章
- Win10安装fliqlo时钟屏保教程
- Airbnb如何应用AARRR策略成为全球第一民宿平台
- go install报错no install location for directory outside GOPATH
- 处理任意类型链表模板
- Python生成随机数字/字符
- js 公众号 获取code_微信公众号开发之网页授权登录及code been used 解决!
- 人机协作机器人发展趋势_目前国内机器人发展存在三大困境,人机协作被广泛关注有以下几点原因...
- 上传文件到OOS服务器
- Django的语言模板
- d3 企业图谱 仿天眼查 企查查