前端精度计算Decimal.js基本用法与举例详解

 更新时间:2025年07月08日 08:19:25   作者:sunn。  
Decimal.js 是一个小型库,用于解决浮点数计算的不精确问题,支持链式调用、加减乘除、取幂、平方根等运算,这篇文章主要介绍了前端精度计算Decimal.js基本用法的相关资料,需要的朋友可以参考下

一、Decimal.js 简介

decimal.js 是一个用于任意精度算术运算的 JavaScript 库,它可以完美解决浮点数计算中的精度丢失问题。

官方API文档:Decimal.js

特性:

  1. 任意精度计算:支持大数、小数的高精度运算。

  2. 链式调用:简洁的链式操作方式。

  3. 支持所有常见运算:加减乘除、取幂、平方根、取模等。

  4. 跨平台:可以在浏览器和 Node.js 中使用。

安装

在项目中使用 decimal.js 需要先安装库:

// 终端输入命令 
npm/cnpm/pnpm install decimal.js

二、Decimal.js 的基本用法

创建 Decimal 对象

可以通过构造函数创建 Decimal 对象,支持多种格式的输入。

import Decimal from 'decimal.js'

// 创建 Decimal 对象,最好使用字符串,防止原生js数字过大自带的精度问题,例如12345678987654321

const num1 = new Decimal(0.1);// 可以不要new关键字,两种方法等同Decimal(0.1)
const num2 = new Decimal('0.2');
const num3 = new Decimal(0.3);

// 得到的结果是一个Decimal对象,需要使用Decimal对象的toString或者toNumber获取正常数据
console.log(num1.toString()); // 输出 "0.1"

console.log(num2.toString()); // 输出 "0.2"

基本运算

Decimal.js 支持常见的加、减、乘、除等操作。

const num1 = new Decimal(0.1);
const num2 = new Decimal(0.2);

console.log(num1.plus(num2).toString()); // 加法:0.3

console.log(num1.minus(num2).toString()); // 减法:-0.1

console.log(num1.times(num2).toString()); // 乘法:0.02

console.log(num1.div(num2).toString()); // 除法:0.5

链式调用

可以通过链式调用简化复杂的计算逻辑。

const result = new Decimal(0.1).plus(0.2)
  .times(10)
  .div(3);

console.log(result.toString()); // 输出 "1"

比较大小

可以通过 Decimal 提供的比较方法来比较两个数的大小。

const num1 = new Decimal(0.1);
const num2 = new Decimal(0.2);

console.log(num1.lessThan(num2)); // true

console.log(num1.greaterThan(num2)); //false

console.log(num1.equals(0.1)); // true

数学运算

Decimal.js 还支持其他常见的数学操作,例如取幂、平方根等。

const num = new Decimal(2);

console.log(num.pow(3).toString()); // 8

console.log(num.sqrt().toString()); // 1.4142135623730951

四舍五入与精度控制

Decimal.js 提供了方便的四舍五入和精度控制方法:

const num = new Decimal(1.23456789);

console.log(num.toFixed(2)); // 1.23

console.log(num.toPrecision(4)); // 1.235

console.log(num.round().toString()); // 1

总结

到此这篇关于前端精度计算Decimal.js基本用法与举例详解的文章就介绍到这了,更多相关前端精度计算Decimal.js用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript操作Oracle数据库示例

    JavaScript操作Oracle数据库示例

    这篇文章主要介绍了JavaScript操作Oracle数据库示例,本文使用ActiveXObject实现访问Oracle数据库,需要的朋友可以参考下
    2015-03-03
  • WEEX环境搭建与入门详解

    WEEX环境搭建与入门详解

    这篇文章主要介绍了WEEX环境搭建与入门详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • js 程序执行与顺序实现详解

    js 程序执行与顺序实现详解

    JavaScript是一种描述型脚本语言,由浏览器进行动态的解析与执行,浏览器对于不同的方式有不同的解析顺序,详细介绍如下,感兴趣的朋友可以参考下哈
    2013-05-05
  • 使用JavaScript实现类数组对象转换为数组的方法

    使用JavaScript实现类数组对象转换为数组的方法

    在 JavaScript 开发中,我们经常会遇到"类数组对象"(array-like objects),这些对象看起来像数组,有 length 属性,也可以通过索引访问元素,但它们不具备数组的方法,本文将详细介绍如何将类数组对象转换为真正的数组,需要的朋友可以参考下
    2025-04-04
  • Javascript数据结构与算法之列表详解

    Javascript数据结构与算法之列表详解

    这篇文章主要介绍了Javascript数据结构与算法之列表详解,本文讲解了列表的抽象数据类型定义、如何实现列表类等内容,需要的朋友可以参考下
    2015-03-03
  • 微信小程序日历插件代码实例

    微信小程序日历插件代码实例

    这篇文章主要介绍了微信小程序日历插件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • JavaScript中代理与反射的用法详解

    JavaScript中代理与反射的用法详解

    JavaScript作为一门灵活而强大的语言,提供了代理(Proxy)与反射(Reflect)这两个元编程工具,它们为开发者提供了更深层次的语言控制和操作,在本篇博客中,我们将深入研究代理与反射的概念、用法,以及如何巧妙地结合它们来实现高级的编程技巧,需要的朋友可以参考下
    2023-12-12
  • 使用JavaScript实现小球按照贝塞尔曲线运动

    使用JavaScript实现小球按照贝塞尔曲线运动

    要在 JavaScript 中实现一个按照贝塞尔曲线运动的小球,关键是要掌握贝塞尔公式的基本原理和实现方式,以及使用 JavaScript 处理动画和物理运算,感兴趣的小伙伴跟着小编一起来看看吧
    2024-10-10
  • 多个jquery.datatable共存,checkbox全选异常的快速解决方法

    多个jquery.datatable共存,checkbox全选异常的快速解决方法

    这篇文章主要介绍了多个jquery.datatable共存,checkbox全选异常的快速解决方法。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • 分享15个JavaScript的重要数组方法

    分享15个JavaScript的重要数组方法

    这篇文章主要介绍了分享15个JavaScript的重要数组方法,数组方法的重要一点是有些是可变的,有些是不可变的。在决定针对特定问题使用哪种方法时,务必牢记,下文就来分享重要数组方法,需要的小伙伴可以参考一下
    2022-05-05

最新评论