js-calculate

A small useful tool which can convinient calculate in javascript.

Usage no npm install needed!

<script type="module">
  import jsCalculate from 'https://cdn.skypack.dev/js-calculate';
</script>

README

js-calculate

A small useful tool which can convinient calculate in javascript.

可方便进行Javascript计算的小工具

这是一个可以方便地进行Javascript进行计算的小工具。  
在Javascript中,计算精度的丢失是一件很令人伤心的事情,无奈的我们只能是通过给Number对象的  
prototype上增加方法或者是直接书写新的方法来执行加减乘除四则运算。那么当一个计算式中出现比  
较复杂的混合运算时代码的可读性就变得非常的差,所以就写出了这么一个工具。

安装命令

npm install js-calculate --save

使用方法

const calculate = require('js-calculate');

import { calculate } from 'js-calculate';
调用calculate()方法,传入两个参数:  
第一个参数是表达式(expression),可以将所需计算的公式直接写出来,避免出现了各种计算方法的嵌套,  
增强了代码可读性。表达式中可以出现标识符,但是不能出现对象成员或数组元素(即不能有“.”和“[]”)。  
第二个参数是表达式中出现的标识符,需要写成一个对象,对象的成员对应表达式中的标识符,具体可参考  
下面的例子。

例子

/*
要进行一个混合运算: (apple + _banana * (pear + 4) / (orange - 2)) / 2  
【其中apple=6, _banana=4, pear=2, orange=8;  
计算结果应该是(6 + 4 * (2 + 4) / (8 - 2)) / 2 = 5】  
则程序代码如下:
*/
calculate("(apple + _banana * (pear + 4) / (orange - 2)) / 2", {  
    apple: 6,  
    _banana: 4,  
    pear: 2,  
    orange: 8  
});

//函数执行完毕后的返回值为5,计算正确,可读性良好。

对比

/*
还是上面的例子,如果使用的是自定义的加减乘除方法numSum(),numSub(),unmMuti(),numDiv()  
最终程序代码就是这样的:  
*/
numDiv(numSum(apple, numDIv(numMulti(_banana,numSum(pear,4)),numSub(orange,2))),2);  

//计算结果依然是正确的,但程序可读性非常差,书写时极易出现错误,出现错误后很难排查……