原文网址:decimal.js--使用/实例_IT利刃出鞘的博客-CSDN博客

简介

说明

本文介绍JavaScript的数学计算库:decimal.js。

官网

文档:https://mikemcl.github.io/decimal.js/

github:https://github.com/MikeMcl/decimal.js

npm地址:https://www.npmjs.com/package/decimal.js

decimal.js特性

  1. 整数和小数
  2. 简单的API,但功能齐全
  3. 复制了很多JavaScript的Number.prototype的方法和Math对象
  4. 也支持十六进制、二进制、八进制
  5. 比Java的BigDecimal的JavaScript版本更快,更小,更容易使用
  6. 没有依赖
  7. 广泛的平台兼容性:仅使用JavaScript 1.5(ECMAScript 3)功能
  8. 全面的文档和测试集
  9. 是math.js的底层实现
  10. 包含一个TypeScript声明文件:decimal.d.ts

安装

该库是单个 JavaScript 文件decimal.js或 ES 模块decimal.mjs。

浏览器

<script src='path/to/decimal.js'></script><script type="module">import Decimal from './path/to/decimal.mjs';...
</script>

CDN:

<script src="https://cdn.bootcdn.net/ajax/libs/decimal.js/10.3.1/decimal.js"></script>

Node.js

npm install decimal.js
const Decimal = require('decimal.js');import Decimal from 'decimal.js';import {Decimal} from 'decimal.js';

实例

代码

<!doctype html>
<html lang="en"><head><meta charset="UTF-8"><title>This is title</title><script src="https://cdn.bootcdn.net/ajax/libs/decimal.js/10.3.1/decimal.js"></script><body>
<div class="container">这是div元素
</div><script>0.1 + 0.2                                   // 0.30000000000000004const x = new Decimal(0.1);const y = x.add(0.2);                      // 0.3const z = Decimal(0.7).plus(x).plus(y).toFixed(2);  // 1.10console.log(y.toString())console.log(z.toString())
</script></body>
</html>

结果

加减乘除

add或者plus

const a = 0.1 + 0.2                        // 0.30000000000000004
const x = new Decimal(0.1);                // 0.1
const y = x.add(0.2);                      // 0.3
const z = Decimal(0.7).plus(x).plus(y).toFixed(2);  // 1.10

sub或minus

const a = 0.3 - 0.1                     // 0.19999999999999998
const x = new Decimal(0.3);             // 0.3
const y = x.sub(0.1)                    // 0.2
const z = Decimal(0.7).minus(x).minus(y).toFixed(2);  // 0.20

mul或times

const a = 0.6 * 3                          // 1.7999999999999998
const x = new Decimal(0.6)                 // 0.6
const y = x.mul(3)                         // '1.8'
const z = Decimal('7e+500').times(y)       // '1.26e+501'

div或devidedBy

const x = new Decimal(5)         // 5
const y = new Decimal(3)         // 3
const z = x.div(y)               // 1.6666666666666666667Decimal.set({ precision: 3, rounding: 2 })
const z1 = x.div(y)              // 1.67Dec = Decimal.clone({ precision: 4, rounding: 3 })
const x1 = new Dec(5)
const z2 = x1.dividedBy(y)       // 1.66

其他方法

见:https://mikemcl.github.io/decimal.js/

decimal.js--使用/实例相关推荐

  1. JavaScript的数学计算库:decimal.js

    阅读目录 官网文档 decimal.js特性 安装 实例代码 加减乘除 官网文档 文档:https://mikemcl.github.io/decimal.js/github:https://gith ...

  2. html自定义datajs,科技常识:HTML5的自定义属性data-*详细介绍和JS操作实例

    今天小编跟大家讲解下有关HTML5的自定义属性data-*详细介绍和JS操作实例 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关HTML5的自定义属性data-*详细介绍和JS操作实例 的 ...

  3. 使用Decimal.js解决前端计算金钱失真问题

    使用Decimal.js解决前端计算金钱失真问题 参考文章: (1)使用Decimal.js解决前端计算金钱失真问题 (2)https://www.cnblogs.com/GGDong/p/10997 ...

  4. Python爬虫教程-16-破解js加密实例(有道在线翻译)

    python爬虫教程-16-破解js加密实例(有道在线翻译) 在爬虫爬取网站的时候,经常遇到一些反爬虫技术,比如: 加cookie,身份验证UserAgent 图形验证,还有很难破解的滑动验证 js签 ...

  5. big.js、bignumber.js 和 decimal.js 的区别

    原文网址:big.js.bignumber.js 和 decimal.js 的区别_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍3个JavaScript的数字处理第三方库的区别,它们是:bi ...

  6. js+css实例超漂亮tab切换选项卡代码

    效果图: 代码:切换效果,要点击才能实现. js+css实例超漂亮tab切换选项卡代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tra ...

  7. 用decimal.js库解决JavaScript中计算精度丢失的问题

    项目场景: 涉及小数点的计算 精度丢失原因看这里 解决 用decimal.js库,decimal.js是使用的二进制来计算的, 所以能解决js的精度问题. 安装和引入 执行命令npm i decima ...

  8. vue实例中调用外部js_vue中引入外部js方法实例

    我们在做vue项目时,经常会需要引入js,常用的有以下几种.本文主要和大家分享vue中引入外部js方法实例,希望能帮助到大家. 第一种import XX from "路径" Vue ...

  9. 页面手写签名插件 jSignature.min.js 使用实例

    页面手写签名插件 jSignature.min.js 使用实例 jSignature.min.js 插件下载 页面使用demo <!DOCTYPE html> <html xmlns ...

最新文章

  1. 算术运算中隐式类型转换
  2. 怎么查看电脑硬盘序列号
  3. phpsduty环境下,使用composer安装报错
  4. [Unity脚本运行时更新]C#5新特性
  5. 线性筛法 欧拉筛c语言,[洛谷P3383][模板]线性筛素数-欧拉筛法
  6. 敏捷开发绩效管理之三:个体动力之源——同行压力(松结对编程,师徒制度,跨职能团队,绩效考核)...
  7. Python: 更改Jupyter Notebook默认工作路径?
  8. HDOJ 1755 - A Number Puzzle 排列数字凑同余,状态压缩DP
  9. SpringBoot 使用Class.forName方法返回java.lang.ClassNotFoundException
  10. 永磁同步电机转子磁链_采用冻结磁导率的瞬态场永磁同步电机交直轴电感计算...
  11. 用Python爬虫爬取“女神吧”上的照片。
  12. ant脚本 变量赋值_【Jmeter】Jmeter+ant+jenkins持续集成
  13. take android,Protake
  14. 双12使用腾讯云WAF反羊毛党、黄牛党战纪全记录
  15. 重置Studio 3T的试用时间
  16. 2022-2028年中国网络直播行业商业模式创新与投资机会深度研究报告
  17. ubuntu 16.04无法上网
  18. Unity - 九宫格切图报错
  19. 技术之道、思维的力量和人生观
  20. codeforces1438C Engineer Artem (#682 Div2)

热门文章

  1. CSS基础知识(自学日记)
  2. IE-LAB网络实验室:CCNA认证在哪考?
  3. magento 多货币paypal支付扩展
  4. 在WordPress中实现授权登录
  5. Java 框架,黑马 java 视频教程,面试资料分享
  6. 光纤耦合调制器市场现状及未来发展趋势
  7. python:实现二分类和多分类的ROC曲线
  8. CSS权重及常用方法
  9. #gStore-weekly | 自建房监管知识图谱
  10. Erwin 字段加注释