什么是 cln?
cln 是一个使用 JavaScript 编写的高精度计算库,可以进行任意精度的整数和有理数计算。它是一个 npm 包,可以被前端和后端项目使用。
安装 cln
在命令行中输入以下命令即可安装 cln:
npm install cln
引入 cln
在 JavaScript 代码中引入 cln:
const cln = require('cln');
cln 对象说明
cln 对象包含两个类:cl_I
和 cl_RA
,分别用于任意精度整数和有理数的计算。其中:
cl_I
的方法适用于整数的计算,比如算数运算、数论算法等,返回值为cl_I
类型。cl_RA
的方法适用于有理数的计算,比如有理数的算数运算和比较等,返回值为cl_RA
类型。
因为 cln 是一个支持任意精度计算的库,计算结果可以非常大,使用过程中需要注意内存占用的问题。
cl_I 类方法说明
构造函数
cl_I()
:构造一个值为 0 的cl_I
对象。cl_I(x: number | string | cl_I)
:构造一个指定数值的cl_I
对象。参数可以为数字、字符串或另一个cl_I
对象。
算数运算
add(y: number | string | cl_I | cl_RA)
:返回当前整数对象加上另一个整数对象或有理数对象的结果。sub(y: number | string | cl_I | cl_RA)
:返回当前整数对象减去另一个整数对象或有理数对象的结果。mul(y: number | string | cl_I)
:返回当前整数对象乘以另一个整数对象的结果。mul(cl_RA)
:返回当前整数对象乘以一个有理数对象的结果。div(y: number | string | cl_I)
:返回当前整数对象除以另一个整数对象的结果。gcd(y: number | string | cl_I)
:返回当前整数对象与另一个整数对象的最大公约数。abs()
:返回当前整数对象的绝对值。
比较运算
cmp(y: number | string | cl_I)
:比较当前整数对象和另一个整数对象的大小,返回 1、0 或 -1。cmpabs(y: number | string | cl_I)
:比较当前整数对象和另一个整数对象的绝对值大小,返回 1、0 或 -1。
cl_RA 类方法说明
构造函数
cl_RA()
:构造一个值为 0 的cl_RA
对象。cl_RA(x: number | string | cl_I)
:构造一个指定数值的有理数对象。参数可以为数字、字符串或cl_I
对象。cl_RA(x: string)
:构造一个字符串表示的有理数对象,如"3/4"
。
算数运算
add(y: number | string | cl_I | cl_RA)
:返回当前有理数对象加上另一个整数对象或有理数对象的结果。sub(y: number | string | cl_I | cl_RA)
:返回当前有理数对象减去另一个整数对象或有理数对象的结果。mul(y: number | string | cl_I | cl_RA)
:返回当前有理数对象乘以另一个整数对象或有理数对象的结果。div(y: number | string | cl_I | cl_RA)
:返回当前有理数对象除以另一个整数对象或有理数对象的结果。recip()
:返回当前有理数对象的倒数。abs()
:返回当前有理数对象的绝对值。
比较运算
cmp(y: number | string | cl_I | cl_RA)
:比较当前有理数对象和另一个整数对象或有理数对象的大小,返回 1、0 或 -1。
示例代码
-- -------------------- ---- ------- ----- --- - --------------- -- ------------ ----- - - --- --------------------------------- ---------------------- -- -------------------- ---------------------- -- -------------------- --------------------- -- -------------------- -- ------------- ----- - - --- ----------------- ---------------------- -- --- ---------------------- -- --- --------------------- -- ---
总结
cln 是一个功能强大的任意精度计算库,可用于前端和后端项目。通过学习 cln 的使用方法,我们可以更加方便地进行高精度计算,为项目开发和科学计算提供支持。同时,在使用过程中需要注意内存占用的问题,尽量避免出现占用太多内存的情况。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/cln