首页 > 编程语言 >JavaScript的数学计算库:decimal.js

JavaScript的数学计算库:decimal.js

时间:2023-03-24 13:04:04浏览次数:40  
标签:const 0.1 decimal JavaScript js new Decimal


阅读目录

  • 官网文档
  • decimal.js特性
  • 安装
  • 实例代码
  • 加减乘除

官网文档

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

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

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

对于小数点的处理可以获取0的个数,并乘以成整数进行运算。

decimal.js特性

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

JavaScript的数学计算库:decimal.js_github

安装

该库是单个 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.30000000000000004
    const x = new Decimal(0.1);
    const y = x.add(0.2);                      // 0.3
    const z = Decimal(0.7).plus(x).plus(y).toFixed(2);  // 1.10
    console.log(y.toString())
    console.log(z.toString())
</script>
 
</body>
</html>

结果

JavaScript的数学计算库:decimal.js_javascript_02

加减乘除

加 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.6666666666666666667
 
Decimal.set({ precision: 3, rounding: 2 })
const z1 = x.div(y)              // 1.67
 
Dec = Decimal.clone({ precision: 4, rounding: 3 })
const x1 = new Dec(5)
const z2 = x1.dividedBy(y)       // 1.66


标签:const,0.1,decimal,JavaScript,js,new,Decimal
From: https://blog.51cto.com/u_13571520/6147104

相关文章

  • JavaScript RegExp 对象
    阅读目录RegExp对象修饰符JavaScriptRegExpi修饰符JavaScriptRegExpg修饰符方括号JavaScriptRegExp[abc]表达式JavaScriptRegExp[^abc]表达式元字符JavaScript......
  • JS基础 网络请求
    阅读目录基础知识XMLHttpRequest基本使用响应类型响应结果使用示例发送表单封装请求类FETCH请示步骤响应头解析响应内容解析实例操作发送请求get发送请求post基础知识浏览......
  • JS基础 空间坐标
    阅读目录视口与文档视口与文档尺寸几何尺寸方法列表getComputedStylegetBoundingClientRectgetClientRects坐标点元素元素集合底层元素滚动控制方法列表文档滚动位置元素滚......
  • JS基础 任务管理
    阅读目录任务管理原理分析脚本加载定时器微任务实例操作进度条任务分解任务管理JavaScript语言的一大特点就是单线程,也就是说同一个时间只能处理一个任务。为了协调事件、......
  • JS基础 模块设计
    阅读目录模块设计使用分析实现原理基础知识标签使用模块路径延迟解析模块默认运行在严格模式模块都有独立的顶级作用域预解析导入导出导出模块具名导入批量导入导入建议别名......
  • JS基础 原型与继承
    阅读目录原型基础原型对象使用数组原型对象的concat方法完成连接操作默认情况下创建的对象都有原型。以下x、y的原型都为元对象Object,即JS中的根对象创建一个极简对象(......
  • requireJS 源码(二) data-main 的加载实现
    requireJS源码(二)data-main的加载实现(一)requireJs的整体结构:requireJS源码前192行,是一些变量的声明,工具函数的实现以及对三个全局变量(requirejs,require,def......
  • requireJS 源码(一) require() 为何可以全局使用
    requireJS源码(一)require()为何可以全局使用requireJS源码加注释总共不到2100行。我看的requireJs版本是2.19。 总体结构如下。......
  • requireJS 源码(三) data-main 的加载实现
    requireJS源码(三)data-main的加载实现(一)入口通过data-main去加载JS模块,是通过  req(cfg) 入口去进行处理的。为了跟踪,你可以在此加断点进行调试跟......
  • Vue.js 路由简介
    路由理解:一个路由(route)就是一组映射关系(key-value),多个路由需要路由器(router)进行管理。前端路由:key是路径,value是组件。......