JavaScript的数学计算库:decimal.js

这篇具有很好参考价值的文章主要介绍了JavaScript的数学计算库:decimal.js。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

An arbitrary-precision Decimal type for JavaScript.

功能

  • 整数和浮点数
  • 简单但功能齐全的 API
  • 复制 JavaScript 和对象的许多方法Number.prototype Math
  • 还处理十六进制、二进制和八进制值
  • 比 Java 的 BigDecimal JavaScript 版本更快,更小,也许更容易使用
  • 无依赖关系
  • 广泛的平台兼容性:仅使用 JavaScript 1.5 (ECMAScript 3) 功能
  • 全面的文档和测试集
  • 在引擎盖下被数学使用.js
  • 包括一个 TypeScript 声明文件:decimal.d.ts

JavaScript的数学计算库:decimal.js

安装

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

浏览器:

<script src='path/to/decimal.js'></script>

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

Npm:

npm install decimal.js
const Decimal = require("decimal.js");

import Decimal from "decimal.js";

import { Decimal } from "decimal.js";

使用

该库导出单个构造函数Decimal,该函数需要单个参数,即数字、字符串或十进制实例。

x = new Decimal(123.4567);
y = new Decimal("123456.7e-3");
z = new Decimal(x);
x.equals(y) && y.equals(z) && x.equals(z); // true

加减乘除

const a = new Decimal(4);
const b = new Decimal(2);
a.add(b); // 6
a.sub(b); // 2
a.mul(b); // 8
a.div(b); // 2

超过 javascript 允许的数字

如果使用超过 javascript 允许的数字的值,建议传递字符串而不是数字,以避免潜在的精度损失。

new Decimal(1.0000000000000001); // '1'
new Decimal(88259496234518.57); // '88259496234518.56'
new Decimal(99999999999999999999); // '100000000000000000000'

new Decimal(2e308); // 'Infinity'
new Decimal(1e-324); // '0'

new Decimal(0.7 + 0.1); // '0.7999999999999999'

可读性

与 JavaScript 数字一样,字符串可以包含下划线作为分隔符以提高可读性。

x = new Decimal("2_147_483_647");

其它进制的数字

如果包含适当的前缀,则也接受二进制、十六进制或八进制表示法的字符串值。

x = new Decimal("0xff.f"); // '255.9375'
y = new Decimal("0b10101100"); // '172'
z = x.plus(y); // '427.9375'

z.toBinary(); // '0b110101011.1111'
z.toBinary(13); // '0b1.101010111111p+8'

x = new Decimal(
    "0b1.1111111111111111111111111111111111111111111111111111p+1023"
);
// '1.7976931348623157081e+308'

有关更多信息,请参阅 doc 目录中的 API 参考。文章来源地址https://www.toymoban.com/news/detail-490373.html

到了这里,关于JavaScript的数学计算库:decimal.js的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 提取字符串中的最长数学表达式并计算(67%用例) C卷(Java&&Python&&C++&&Node.js&&C语言)

    提取字符串中的最长合法简单数学表达式,字符串长度最长的,并计算表达式的值。如果没有,则返回0 简单数学表达式只能包含以下内容 0-9数字,符号+-* 说明: 1.所有数字,计算结果都不超过long 2.如果有多个长度一样的,请返回第一个表达式的结果 3.数学表达式,必须是最

    2024年04月13日
    浏览(38)
  • 第三章 decimal模块

    decimal 模块是 Python 提供的用于进行十进制定点和浮点运算的内置模块。使用它可以快速正确地进行十进制定点和浮点数的舍入运算,并且可以控制有效数字的个数。 使用 decimal 模块主要是因为它与 Python 自带的浮点数相比,有以下优点 : 基于浮点模型,提供与数字计算相同

    2024年02月09日
    浏览(59)
  • python之decimal

    decimal是python的标准库之一,我们通常用它来进行浮点数的运算和比较。 为什么需要使用decimal 因为使用浮点数计算比较会有误差,请看下面的例子 结果: decimal实现 我们建议浮点数的运算和比较采用Decimal来实现 结果: 注意事项 Decimal初始化值必须是数字字符串或者是整数,浮点

    2024年02月10日
    浏览(27)
  • python中decimal用法详解

    decimal是python内置库。 decimal模块支持快速正确四舍五入的十进制浮点运算。 示例代码: 运行结果:         与基于硬件的二进制浮点数不同,decimal 模块具有用户可更改的精度(默认为 28 位),对于给定问题,它可以根据需要设置为最大: 运行结果:         使用小

    2024年02月11日
    浏览(30)
  • JavaScript for循环语句的特殊案例,用代码解决数学中的问题

    案例一: 一百个和尚分一百个馒头,大和尚一人分三个,小和尚三人分一个,正好分完。问大、小和尚各几人? 案例二: 案例:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? 案例三: 小明单位发了100元的购物卡,小明到超市买三

    2024年02月06日
    浏览(44)
  • 代币中的decimal精度代表了什么

    精度的意义在于允许发送小数的代币。举例,一个CAT代币合约的精度为6。那么 你拥有1个CAT就意味着合约中的balance = 1 * 10^6 , 转账 0.1CAT出去的话,就需要输入 0.1*10^6 = 10^5。 也就时在涉及代币时,查询到的余额、转账的代币数量 都和 代币合约的精度挂钩 ERC20 合约默认的精度

    2024年02月02日
    浏览(50)
  • JS基础-初识JavaScript

    前面讲了前端开发必备的三种语言。其中的HTML、CSS我们基本上有了比较正确的认识。这里讲一下JavaScript。 语言 功能 结构层 HTML 搭建结构、放置部件、描述定义 样式层 CSS 美化页面、实现布局 行为层 JavaScript 实现交互效果、数据收发、表单验证 HTML构成了基础的骨架。 CSS

    2024年02月10日
    浏览(43)
  • JavaScript(JS基础)

    提示:JS的重点是让静态的页面产生一些变化 提示:JavaScript是弱类型语言,行尾分号可写可不写 首先看下Java 与 JavaScript什么关系 JS编写在 script (脚本)标记中, script 标记可以出现在html中的任意位置,也就是说JS代码可以嵌入在HTML中任意部分,从上到下依次执行 script引入外

    2024年02月11日
    浏览(48)
  • Mysql - 定点型(DECIMAL)的使用详解及练习

    目录 🐶1. 前言: 🐶2. DECIMAL类型简介 🐶3. Decimal使用实战 🥪#结论1:小数位不足会自动补0 🥪#结论2:小数位超出会截断 并按四舍五入处理。  🥪#结论3:小数位不足会自动补0  🥪#结论4:首位数字为0自动忽略  🥪#结论5:超出存储范围会报错 🐶4. 使用小结 🐶5. leetco

    2024年01月23日
    浏览(28)
  • JavaScript深拷贝(js深拷贝,JavaScript递归函数,实现深拷贝)

    简述:JavaScript的深拷贝和浅拷贝大家都比较熟悉,今天来分享下深拷贝,就是使用该函数时,会复制拷贝一份该数据,修改该数据属性,不会改变原有数据,就是把复制的对象所引用的对象全都复制了一遍,具体实现如下; 1、定义拷贝对象; 2、定义递归函数deepClone(),实现

    2024年02月15日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包