JavaScript的数学计算库:decimal.js

news2024/11/27 11:44:09

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

image.png

安装

该库是单个 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 参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/665071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python代码实现查找重复字符串

Python代码实现查找重复字符串 Python 是一种高级程序设计语言&#xff0c;被广泛用于网络编程、web开发、数据分析等领域。在 SEO 操作中&#xff0c;经常需要进行关键词分析&#xff0c;以确定哪些词汇是最重要的。本文将介绍如何使用 Python 实现查找重复字符串的代码。 什…

24连续Hopfield神经网络的优化旅行商问题优化计算(附matlab程序)

1.简述 学习目标&#xff1a; 连续Hopfield神经网络的优化旅行商问题优化计算 需要计算10个城市最优路径及总路径长度 hopfield可以分为离散型神经网络和连续型神经网络&#xff08;DHNN\ CHNN&#xff09; 在之前的文章中讲过的单层感知器和BP都是离散的&#xff0c;目前连续…

高效创作助手:ChatGPT最新版实现批量撰写聚合文章的全新水平

随着人工智能技术的不断发展&#xff0c;ChatGPT最新版作为一款智能创作助手&#xff0c;实现了批量撰写聚合文章的全新水平。它能够在短时间内生成高质量的文章&#xff0c;极大地提高了创作效率。本文将从随机8-20个方面对ChatGPT最新版进行详细的阐述&#xff0c;让我们一起…

C11 std::function 学习

此文&#xff0c; https://blog.csdn.net/bcbobo21cn/article/details/111658249 使用了一次C11 std::function&#xff0c;是作为函数指针使用的&#xff1b; 进一步的来说&#xff0c;C11的std::function可以对任何可以调用的目标实体进行调用操作&#xff1b; std::functi…

RFID课程要点总结_5 EPC

5. EPCglobal Standard & protocol Concept of EPC global network EPCglobal Network: a technology that allows trading partners to document and determine the location of individual goodsif possible in real timeadditional information: such as 生产使用日期…

golang代码规范之框架搭建规范

编写本规范的目的在于&#xff0c;让开发者更方便快捷地搭建项目框架&#xff0c;同时让团队内部的技术栈达到统一。 指导思想 框架搭建需要适应项目的变化&#xff0c;为项目选择最合适的架构&#xff0c;没有什么是一成不变的。技术架构应该是不断完善的&#xff0c;在满足当…

pytest 自动化学习

一 pytest简介与安装 def inc(x): return x1 def test_answer(): assert inc(3) 5 #判断 4会不会等5 二 Pytest 命令规则 三 pycharm配置与界面化运行 四 pytest测试用例结构 用例结构 三部分构成 1.用例名称用例步骤 2.编辑 3.断言…

Docker 进入容器和交换文件

1、进入容器 有些时候需要进入容器进行操作&#xff0c;使用 docker exec 命令&#xff0c;这个命令后面可以添加很多参数&#xff0c;我们这里只讲添加 -i 和 -it 参数。 只添加 -i 参数时&#xff0c;由于没有分配伪终端&#xff0c;界面没有我们熟悉的 Linux 命令提示…

人工智能第2章基于图的知识表示与图搜索技术(课后部分习题答案)

解&#xff1a;用四元组&#xff08;f&#xff0c;w&#xff0c;s&#xff0c;g&#xff09;表示状态&#xff0c;其中 f 表示猎人&#xff0c;w 表示狼&#xff0c; s 表示羊&#xff0c;g 表示草&#xff0c;其中每个元素都可以为 0 或 1&#xff0c;表示在左案&#xff0c; …

chatgpt赋能python:Python将图片转换为代码的顶级SEO文章

Python将图片转换为代码的顶级SEO文章 在当今数字化的世界中&#xff0c;图像和代码都是最为重要的元素之一。Python作为一种流行的编程语言&#xff0c;可以帮助我们将这两种元素结合起来&#xff0c;让我们从图像中提取出代码。本文将讨论Python如何将图像转换为代码&#x…

哈工大计算机网络传输层协议详解之:TCP协议

哈工大计算机网络传输层协议详解之&#xff1a;TCP协议 文章目录 哈工大计算机网络传输层协议详解之&#xff1a;TCP协议TCP概述TCP段结构序列号和ACKTCP可靠数据传输RTT和超时TCP发送方事件TCP发送端程序伪代码TCP重传示例TCP接收方 ACK生成TCP快速重传机制 TCP流量控制TCP连接…

总结905

今日已做&#xff1a; 1.核聚课程 2.进步本回顾&#xff0c;重做8道题&#xff0c;有两道还没掌握&#xff0c;记录3页。 3.线性代数第5讲 4.三大计算&#xff0c;刷题15道&#xff0c;纠错。 5.每日长难句。 6.考研常识课 明日必做 1.熟练背诵《the king’s speech》并默写 2…

chatgpt赋能python:Python抽卡:让你的游戏更充实

Python抽卡&#xff1a;让你的游戏更充实 作为一款流行的游戏&#xff0c;抽卡是许多玩家最喜欢的功能之一。通过不断的抽卡&#xff0c;你可以获取到更加强大的角色和装备&#xff0c;从而在游戏中获得更多的胜利。但是&#xff0c;手动抽卡需要耗费大量的时间和精力&#xf…

简要介绍 | 点云距离度量:从原理到应用

注1&#xff1a;本文系“简要介绍”系列之一&#xff0c;仅从概念上对点云距离度量进行非常简要的介绍&#xff0c;不适合用于深入和详细的了解。 点云距离度量&#xff1a;从原理到应用 3D deep learning on Point cloud 1. 背景介绍 点云数据在计算机图形学、计算机视觉、自…

C#探索之路(9):深入理解C#代码编译的过程以及原理

C#探索之路(9)&#xff1a;深入理解C#代码编译的过程以及原理 文章目录 C#探索之路(9)&#xff1a;深入理解C#代码编译的过程以及原理一、前言&#xff1a;概念解析1、编译器&#xff1a;2、JIT是什么&#xff1f;3、AOT是什么&#xff1f;4、如何理解这个“基于运行时”的概念…

Shell 脚本和编程

shell脚本和编程 Shel基础概念 Shell是一种命令行解释器&#xff0c;是Linux系统中最常用的命令行界面。Shell脚本是由一系列Shell命令组成的文本文件&#xff0c;可以用来自动化执行Linux系统上的任务。Shell脚本是一种强大的工具&#xff0c;可以通过编写脚本来实现自动化运…

FPGA XDMA 中断模式实现 PCIE X8 测速试验 提供工程源码和QT上位机源码

目录 1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案XDMA简介XDMA中断模式QT上位机及其源码 5、vivado工程详解6、上板调试验证7、福利&#xff1a;工程代码的获取 1、前言 PCIE&#xff08;PCI Express&#xff09;采用了目前业内流行的点对点串行连接&#xf…

Unity 之 最新原生广告Ads接入 -- 助力增长游戏收益

Unity 之 最新Ads原生广告接入流程详解和工具类分享 一&#xff0c;注册 Unity Ads 广告 SDK二&#xff0c;下载 Unity Ads 广告 SDK三&#xff0c;配置 Unity Ads 广告 SDK3.1 广告位展示流程3.2 代码初始化 四&#xff0c;集成 Unity Ads 广告 SDK4.1 相关介绍4.2 代码分享 五…

开发日记-凌鲨中数据库代理的实现

凌鲨定位于连接研发过程中一切信息和工具。下面是数据库代理的大概框架&#xff1a; 技术选型 使用golang开发各种数据库协议代理,redis-proxy,mysql-proxy,mongo-proxy使用swagger提供代理协议的调试 选型原因 我们的客户端使用了tauri作为框架&#xff0c;在实现扩展功能的…

基于阴影检测和平衡亮度差阴影消除算法的MATLAB完整程序分享

完整代码: clc; clear; close all; warning off; addpath(genpath(pwd)); I=imread(1.png);%%此处导入自己需要检测的图片 [x,y,z]=size(I); figure(Name,Processing Steps),subplot(3,2,1), imshow(I),title(Image 1: Original Image); I=uint8(I); temp1=I; half_intens…