<commit_before>ToolGood.Algorithm
===================
ToolGood.Algorithm支持`四则运算`、`Excel函数`,并支持`自定义参数`。

## 快速上手
``` csharp
    AlgorithmEngine engine = new AlgorithmEngine();
    double a=0.0;
    if (engine.Parse("1+2")) {
        var o = engine.Evaluate();
        a=o.NumberValue;
    }
    var b = engine.TryEvaluate("1=1 && 1<2", 0);
    var c = engine.TryEvaluate("2+3", 0);
    var d = engine.TryEvaluate("count({1,2,3,4})", 0);//{}代表数组,返回:4
    var s = engine.TryEvaluate("'aa'&'bb'", ""); //字符串连接,返回:aabb
    var r = engine.TryEvaluate("(1=1)*9+2", 0); //返回:11
    var d = engine.TryEvaluate("'2016-1-1'+1", DateTime.MinValue); //返回日期:2016-1-2
    var t = engine.TryEvaluate("'2016-1-1'+9*'1:0'", DateTime.MinValue);//返回日期:2016-1-1 9:0
    var j = engine.TryEvaluate("json('{\"Name\":\"<NAME>\",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')[Age]", null);//返回51
    var k = engine.TryEvaluate("json('{\"Name\":\"<NAME>   \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')[Name].Trim()", null);//返回"William Shakespeare" (不带空格)
	var l = engine.TryEvaluate("json('{\"Name1\":\"<NAME> \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')['Name'& 1].Trim().substring(2,3)", null); ;//返回"ill"

```
支持常量`pi`,`e`,`true`,`false`。

数字转bool，非零为真,零为假。
bool转数字，假为`0`，真为`1`。
bool转字符串，假为`FALSE`，真为`TRUE`。
字符串转bool,`0`、`false`为假，`1`、`true`为真。


索引默认为`Excel索引`，如果想用c#索引，请设置`UseExcelIndex`为`false`。

## 自定义参数
``` csharp
    //定义圆柱信息
    public class Cylinder : AlgorithmEngine
    {
        private int _radius;
        private int _height;
        public Cylinder(int radius, int height)
        {
            _radius = radius;
            _height = height;
        }

        protected override Operand GetParameter(string parameter)
        {
            if (parameter == "[半径]")
            {
                return Operand.Create(_radius);
            }
            if (parameter == "[直径]")
            {
                return Operand.Create(_radius * 2);
            }
            if (parameter == "[高]")
            {
                return Operand.Create(_height);
            }
            return base.GetParameter(parameter);
        }
    }
    //调用方法
    Cylinder c = new Cylinder(3, 10);
    c.TryEvaluate("[半径]*[半径]*pi()", 0.0);      //圆底面积
    c.TryEvaluate("[直径]*pi()", 0.0);            //圆的长
    c.TryEvaluate("[半径]*[半径]*pi()*[高]", 0.0); //圆的体积
    c.TryEvaluate("['半径']*[半径]*pi()*[高]", 0.0); //圆的体积
```
参数以方括号定义，如 `[参数名]`。 


## Excel函数
函数：`逻辑函数`、`数学与三角函数`、`文本函数`、`统计函数`、`日期与时间函数`

注：函数名不分大小写,带方括号的参数可省略,示例的返回值,可能为近似值。
#### 逻辑函数
<table>
    <tr><td>函数名</td><td>说明</td><td>示例</td></tr>
    <tr>
        <td>IF</td><td>if(测试条件,真值[,假值])<br>执行真假值判断,根据逻辑计算的真假值,返回不同结果。</td>
        <td>if(1=1,1,2) <br>>>1</td>
    </tr>
    <tr>
        <td>IFERROR</td><td>ifError(测试条件,真值[,假值])<br>如果公式计算出错误则返回您指定的值；否则返回公式结果。</td>
        <td>iferror(1/0,1,2) <br>>>1</td>
    </tr>
    <tr>
        <td>ISERROR</td><td>ISERROR(值)<br>判断出错,返回 TRUE 或 FALSE</td>
        <td>ISERROR(1) <br>>>false</td>
    </tr>
    <tr>
        <td>ISNUMBER</td><td>isNumber(值)<br>判断是否数字,返回 TRUE 或 FALSE</td>
        <td>ISNUMBER(1) <br>>>true</td>
    </tr>
    <tr>
        <td>ISTEXT</td><td>isText(值)<br>判断是否文字,返回 TRUE 或 FALSE</td>
        <td>istext('1') <br>>>true </td>
    </tr>
    <tr>
        <td>ISNONTEXT</td><td>ISNONTEXT(值)<br>判断是否为非文字,返回 TRUE 或 FALSE</td>
        <td>ISNONTEXT('1') <br>>>false </td>
    </tr>
    <tr>
        <td>ISLOGICAL</td><td>ISLOGICAL(值)<br>判断是否为逻辑值,返回 TRUE 或 FALSE</td>
        <td>ISLOGICAL('1') <br>>>false </td>
    </tr>
    <tr>
        <td>ISEVEN</td><td>ISEVEN(值)<br>如果数字是偶数,返回 TRUE 或 FALSE</td>
        <td>ISEVEN('1') <br>>>false </td>
    </tr>
    <tr>
        <td>ISODD</td><td>ISODD(值)<br>如果数字是奇数,返回 TRUE 或 FALSE</td>
        <td>ISODD('1') <br>>>true </td>
    </tr>
    <tr>
        <td>AND</td><td>and(逻辑值1,...)<br>如果所有参数均为TRUE,则返回TRUE</td>
        <td>and(1,2=2) <br>>>true</td>
    </tr>
    <tr>
        <td>OR</td><td>or(逻辑值1,...)<br>如果任一参数为TRUE,则返回TRUE</td>
        <td>or(1,2=3) <br>>>true</td>
    </tr>
    <tr>
        <td>NOT</td><td>not(逻辑值)<br>对参数的逻辑值求反</td>
        <td>NOT(true()) <br>>>false</td>
    </tr>
    <tr>
        <td>TRUE</td><td>true()<br>返回逻辑值TRUE</td>
        <td>true() <br>>>true</td>
    </tr>
    <tr>
        <td>FALSE</td><td>false()<br>返回逻辑值FALSE</td>
        <td>false() <br>>>false</td>
    </tr>
</table>

#### 数学与三角函数
<table>
    <tr><td>分类</td><td>函数名</td><td>说明</td><td>示例</td></tr>
    <tr>
        <td rowspan="12">基<br><br>础<br><br>数<br><br>学</td>
        <td>PI</td><td>pi()<br>返回 PI 值</td>
        <td>pi() <br>>>3.141592654</td>
    </tr>
    <tr>
        <td>abs</td><td>abs(数字)<br>返回数字的绝对值</td>
        <td>abs(-1) <br>>>1</td>
    </tr>
    <tr>
        <td>QUOTIENT</td><td>quotient(除数,被除数)<br>返回商的整数部分,该函数可用于舍掉商的小数部分。</td>
        <td>QUOTIENT(7,3) <br>>>2</td>
    </tr>
    <tr>
        <td>mod</td><td>mod(除数,被除数)<br>返回两数相除的余数</td>
        <td>MOD(7,3) <br>>>1</td>
    </tr>
    <tr>
        <td>SIGN</td><td>sign(数字)<br>返回数字的符号。当数字为正数时返回 1,为零时返回 0,为负数时返回 -1。</td>
        <td>SIGN(-9) <br>>>-1</td>
    </tr>
   <tr>
        <td>SQRT</td><td>sqrt(数字)<br>返回正平方根</td>
        <td>SQRT(9) <br>>>3</td>
    </tr>
    <tr>
        <td>TRUNC</td><td>trunc(数字)<br>将数字截尾取整</td>
        <td>TRUNC(9.222) <br>>>9</td>
    </tr>
    <tr>
        <td>int</td><td>int(数字)<br>将数字向下舍入到最接近的整数。</td>
        <td>int(9.222) <br>>>9</td>
    </tr>
    <tr>
        <td>gcd</td><td>gcd(数字1,...)<br>返回最大公约数</td>
        <td>GCD(3,5,7) <br>>>1</td>
    </tr>
    <tr>
        <td>LCM</td><td>lcm(数字1,...)<br>返回整数参数的最小公倍数</td>
        <td>LCM(3,5,7) <br>>>105</td>
    </tr>
    <tr>
        <td>combin</td><td>combin(总数,排列数)<br>计算从给定数目的对象集合中提取若干对象的组合数</td>
        <td>combin(10,2) <br>>>45</td>
    </tr>
    <tr>
        <td>PERMUT</td><td>permut(总数,排列数)<br>返回从给定数目的对象集合中选取的若干对象的排列数</td>
        <td>PERMUT(10,2) <br>>>990</td>
    </tr>
    <tr>
    <td rowspan="15">三<br><br>角<br><br>函<br><br>数</td>
        <td>degrees</td><td>degrees(弧度)<br>将弧度转换为度</td>
        <td>degrees(pi()) <br>>>180</td>
    </tr>
    <tr>
        <td>RADIANS</td><td>radians(度)<br>将度转换为弧度</td>
        <td>RADIANS(180) <br>>>3.141592654</td>
    </tr>
    <tr>
        <td>cos</td><td>cos(弧度)<br>返回数字的余弦值</td>
        <td>cos(1) <br>>>0.540302305868</td>
    </tr>
    <tr>
        <td>cosh</td><td>cosh(弧度)<br>返回数字的双曲余弦值</td>
        <td>cosh(1) <br>>>1.54308063481</td>
    </tr>
    <tr>
        <td>SIN</td><td>sin(弧度)<br>返回给定角度的正弦值</td>
        <td>sin(1) <br>>>0.84147098480</td>
    </tr>
    <tr>
        <td>SINH</td><td>sinh(弧度)<br>返回数字的双曲正弦值</td>
        <td>sinh(1) <br>>>1.1752011936</td>
    </tr>
    <tr>
        <td>TAN</td><td>tan(弧度)<br>返回数字的正切值</td>
        <td>tan(1) <br>>>1.55740772465</td>
    </tr>
    <tr>
        <td>TANH</td><td>tanh(弧度)<br>返回数字的双曲正切值</td>
        <td>tanh(1) <br>>>0.761594155955</td>
    </tr>
    <tr>
        <td>acos</td><td>acos(数值)<br>返回数字的反余弦值</td>
        <td>acos(0.5) <br>>>1.04719755119</td>
    </tr>
    <tr>
        <td>acosh</td><td>acosh(数值)<br>返回数字的反双曲余弦值</td>
        <td>acosh(1.5) <br>>>0.962423650119</td>
    </tr>
    <tr>
        <td>asin</td><td>asin(数值)<br>返回数字的反正弦值</td>
        <td>asin(0.5) <br>>>0.523598775598</td>
    </tr>
    <tr>
        <td>asinh</td><td>asinh(数值)<br>返回数字的反双曲正弦值。</td>
        <td>asinh(1.5) <br>>>1.1947632172</td>
    </tr>
    <tr>
        <td>atan</td><td>atan(数值)<br>返回数字的反正切值</td>
        <td>atan(1) <br>>>0.785398163397</td>
    </tr>
   <tr>
        <td>atanh</td><td>atanh(数值)<br>返回参数的反双曲正切值</td>
        <td>atanh(1) <br>>>0.549306144334</td>
    </tr>
    <tr>
        <td>atan2</td><td>atan2(数值,数值)<br>从X和Y坐标返回反正切</td>
        <td>atan2(1,2) <br>>>1.10714871779</td>
    </tr>
    <tr>
        <td rowspan="8">四<br><br>舍<br><br>五<br><br>入</td>
        <td>ROUND</td><td>round(数值,小数位数)<br>返回某个数字按指定位数取整后的数字。</td>
        <td>ROUND(4.333,2) <br>>>4.33</td>
    </tr>
    <tr>
        <td>ROUNDDOWN</td><td>roundDown(数值,小数位数)<br>靠近零值,向下（绝对值减小的方向）舍入数字。</td>
        <td>ROUNDDOWN(4.333,2) <br>>>4.33</td>
    </tr>
    <tr>
        <td>ROUNDUP</td><td>roundUp(数值,小数位数)<br>远离零值,向上（绝对值增长的方向）舍入数字。</td>
        <td>ROUNDUP(4.333,2) <br>>>4.34</td>
    </tr>
    <tr>
        <td>CEILING</td><td>ceiling(数值,舍入基数)<br>向上舍入（沿绝对值增大的方向）为最接近的 舍入基数 的倍数。</td>
        <td>CEILING(4.333,0.1) <br>>>4.4</td>
    </tr>
    <tr>
        <td>floor</td><td>floor(数值,舍入基数)<br>向下舍入,使其等于最接近的 Significance 的倍数。</td>
        <td>FLOOR(4.333,0.1) <br>>>4.3</td>
    </tr>
    <tr>
        <td>even</td><td>even(数值)<br>返回沿绝对值增大方向取整后最接近的偶数。</td>
        <td>EVEN(3) <br>>>4</td>
    </tr>
    <tr>
        <td>ODD</td><td>odd(数值)<br>将数字向上舍入为最接近的奇型整数</td>
        <td>ODD(3.1) <br>>>5</td>
    </tr>
    <tr>
        <td>MROUND</td><td>mround(数值,舍入基数)<br>返回一个舍入到所需倍数的数字</td>
        <td>MROUND(13,5) <br>>>15</td>
    </tr>
    <tr>
        <td rowspan="2">随<br><br>机<br><br>数</td>
        <td>RAND</td><td>rand()<br>返回 0 到 1 之间的随机数 </td>
        <td>RAND() <br>>>0.2</td>
    </tr>
    <tr>
        <td>RANDBETWEEN</td><td>randBetween(最小整数,最大整数)<br>返回大于等于指定的最小值,小于指定最大值之间的一个随机整数。</td>
        <td>RANDBETWEEN(2,44) <br>>>9</td>
    </tr>
    <tr>
        <td rowspan="12">幂<br><br>/<br><br>对<br><br>数<br><br>/<br><br>阶<br><br>乘</td>
        <td>fact</td><td>fact(数值)<br>返回数的阶乘,一个数的阶乘等于 1*2*3*…* 该数。</td>
        <td>FACT(3) <br>>>6</td>
    </tr>
    <tr>
        <td>factdouble</td><td>factDouble(数值)<br>返回数字的双倍阶乘</td>
        <td>FACTDOUBLE(10) <br>>>3840</td>
    </tr>
    <tr>
        <td>POWER</td><td>power(数值,幂)<br>返回数的乘幂结果</td>
        <td>POWER(10,2) <br>>>100</td>
    </tr>
    <tr>
        <td>exp</td><td>exp(幂)<br>返回e的指定数乘幂</td>
        <td>exp(2) <br>>>7.389056099</td>
    </tr>
    <tr>
        <td>ln</td><td>ln(数值)<br>返回数字的自然对数</td>
        <td>LN(4) <br>>>1.386294361</td>
    </tr>
    <tr>
        <td>log</td><td>log(数值[,底数])<br>返回数字的常用对数,如省略底数,默认为10</td>
        <td>LOG(100,10) <br>>>2</td>
    </tr>
    <tr>
        <td>LOG10</td><td>log10(数值)<br>返回数字的10对数</td>
        <td>LOG10(100) <br>>>2</td>
    </tr>
    <tr>
        <td>MULTINOMIAL</td><td>multinomial(数值1,...)<br>返回参数和的阶乘与各参数阶乘乘积的比值</td>
        <td>MULTINOMIAL(1,2,3) <br>>>60</td>
    </tr>
    <tr>
        <td>PRODUCT</td><td>product(数值1,...)<br>将所有以参数形式给出的数字相乘,并返回乘积值。</td>
        <td>PRODUCT(1,2,3,4) <br>>>24</td>
    </tr>
    <tr>
        <td>SQRTPI</td><td>sqrtPi(数值)<br>返回某数与 PI 的乘积的平方根</td>
        <td>SQRTPI(3) <br>>>3.069980124</td>
    </tr>
    <tr>
        <td>SUMSQ</td><td>sumQq(数值,...)<br>返回参数的平方和</td>
        <td>SUMSQ(1,2) <br>>>5</td>
    </tr>
   <tr>
        <td>FIXED</td><td>fixed(数值[,小数位数[,有无逗号分隔符]])<br>将数字设置为具有固定小数位的文本格式</td>
        <td>FIXED(4567.89,1) <br>>>4,567.9</td>
    </tr>
    <tr>
        <td rowspan="12">转<br><br>化</td>
        <td>DEC2BIN</td><td>DEC2BIN(数值[,位数])<br>十进制转二进制 </td>
        <td>DEC2BIN(100) <br>>> </td>
    </tr>
    <tr>
        <td>DEC2OCT</td><td>DEC2OCT(数值[,位数])<br>十进制转八进制 </td>
        <td>DEC2OCT(100) <br>>> </td>
    </tr><commit_msg>修改 README.md<commit_after>ToolGood.Algorithm
===================
ToolGood.Algorithm支持`四则运算`、`Excel函数`,并支持`自定义参数`。

## 快速上手
``` csharp
    AlgorithmEngine engine = new AlgorithmEngine();
    double a=0.0;
    if (engine.Parse("1+2")) {
        var o = engine.Evaluate();
        a=o.NumberValue;
    }
    var b = engine.TryEvaluate("1=1 && 1<2", 0);
    var c = engine.TryEvaluate("2+3", 0);
    var d = engine.TryEvaluate("count({1,2,3,4})", 0);//{}代表数组,返回:4
    var s = engine.TryEvaluate("'aa'&'bb'", ""); //字符串连接,返回:aabb
    var r = engine.TryEvaluate("(1=1)*9+2", 0); //返回:11
    var d = engine.TryEvaluate("'2016-1-1'+1", DateTime.MinValue); //返回日期:2016-1-2
    var t = engine.TryEvaluate("'2016-1-1'+9*'1:0'", DateTime.MinValue);//返回日期:2016-1-1 9:0
    var j = engine.TryEvaluate("json('{\"Name\":\"<NAME>\",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')[Age]", null);//返回51
    var k = engine.TryEvaluate("json('{\"Name\":\"<NAME>   \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')[Name].Trim()", null);//返回"<NAME>" (不带空格)
	var l = engine.TryEvaluate("json('{\"Name1\":\"<NAME> \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')['Name'& 1].Trim().substring(2,3)", null); ;//返回"ill"

```
支持常量`pi`,`e`,`true`,`false`。

数字转bool，非零为真,零为假。
bool转数字，假为`0`，真为`1`。
bool转字符串，假为`FALSE`，真为`TRUE`。
字符串转bool,`0`、`false`为假，`1`、`true`为真。


索引默认为`Excel索引`，如果想用c#索引，请设置`UseExcelIndex`为`false`。

## 自定义参数
``` csharp
    //定义圆柱信息
    public class Cylinder : AlgorithmEngine
    {
        private int _radius;
        private int _height;
        public Cylinder(int radius, int height)
        {
            _radius = radius;
            _height = height;
        }

        protected override Operand GetParameter(string parameter)
        {
            if (parameter == "[半径]")
            {
                return Operand.Create(_radius);
            }
            if (parameter == "[直径]")
            {
                return Operand.Create(_radius * 2);
            }
            if (parameter == "[高]")
            {
                return Operand.Create(_height);
            }
            return base.GetParameter(parameter);
        }
    }
    //调用方法
    Cylinder c = new Cylinder(3, 10);
    c.TryEvaluate("[半径]*[半径]*pi()", 0.0);      //圆底面积
    c.TryEvaluate("[直径]*pi()", 0.0);            //圆的长
    c.TryEvaluate("[半径]*[半径]*pi()*[高]", 0.0); //圆的体积
    c.TryEvaluate("['半径']*[半径]*pi()*[高]", 0.0); //圆的体积
```
参数以方括号定义，如 `[参数名]`。 


## Excel函数
函数：`逻辑函数`、`数学与三角函数`、`文本函数`、`统计函数`、`日期与时间函数`

注：函数名不分大小写,带方括号的参数可省略,示例的返回值,可能为近似值。
#### 逻辑函数
<table>
    <tr><td>函数名</td><td>说明</td><td>示例</td></tr>
    <tr>
        <td>IF</td><td>if(测试条件,真值[,假值])<br>执行真假值判断,根据逻辑计算的真假值,返回不同结果。</td>
        <td>if(1=1,1,2) <br>>>1</td>
    </tr>
    <tr>
        <td>IFERROR</td><td>ifError(测试条件,真值[,假值])<br>如果公式计算出错误则返回您指定的值；否则返回公式结果。</td>
        <td>iferror(1/0,1,2) <br>>>1</td>
    </tr>
    <tr>
        <td>ISERROR</td><td>ISERROR(值)<br>判断出错,返回 TRUE 或 FALSE</td>
        <td>ISERROR(1) <br>>>false</td>
    </tr>
    <tr>
        <td>ISNUMBER</td><td>isNumber(值)<br>判断是否数字,返回 TRUE 或 FALSE</td>
        <td>ISNUMBER(1) <br>>>true</td>
    </tr>
    <tr>
        <td>ISTEXT</td><td>isText(值)<br>判断是否文字,返回 TRUE 或 FALSE</td>
        <td>istext('1') <br>>>true </td>
    </tr>
    <tr>
        <td>ISNONTEXT</td><td>ISNONTEXT(值)<br>判断是否为非文字,返回 TRUE 或 FALSE</td>
        <td>ISNONTEXT('1') <br>>>false </td>
    </tr>
    <tr>
        <td>ISLOGICAL</td><td>ISLOGICAL(值)<br>判断是否为逻辑值,返回 TRUE 或 FALSE</td>
        <td>ISLOGICAL('1') <br>>>false </td>
    </tr>
    <tr>
        <td>ISEVEN</td><td>ISEVEN(值)<br>如果数字是偶数,返回 TRUE 或 FALSE</td>
        <td>ISEVEN('1') <br>>>false </td>
    </tr>
    <tr>
        <td>ISODD</td><td>ISODD(值)<br>如果数字是奇数,返回 TRUE 或 FALSE</td>
        <td>ISODD('1') <br>>>true </td>
    </tr>
    <tr>
        <td>AND</td><td>and(逻辑值1,...)<br>如果所有参数均为TRUE,则返回TRUE</td>
        <td>and(1,2=2) <br>>>true</td>
    </tr>
    <tr>
        <td>OR</td><td>or(逻辑值1,...)<br>如果任一参数为TRUE,则返回TRUE</td>
        <td>or(1,2=3) <br>>>true</td>
    </tr>
    <tr>
        <td>NOT</td><td>not(逻辑值)<br>对参数的逻辑值求反</td>
        <td>NOT(true()) <br>>>false</td>
    </tr>
    <tr>
        <td>TRUE</td><td>true()<br>返回逻辑值TRUE</td>
        <td>true() <br>>>true</td>
    </tr>
    <tr>
        <td>FALSE</td><td>false()<br>返回逻辑值FALSE</td>
        <td>false() <br>>>false</td>
    </tr>
</table>

#### 数学与三角函数
<table>
    <tr><td>分类</td><td>函数名</td><td>说明</td><td>示例</td></tr>
    <tr>
        <td rowspan="13">基<br><br>础<br><br>数<br><br>学</td>
        <td>PI</td><td>pi()<br>返回 PI 值</td>
        <td>pi() <br>>>3.141592654</td>
    </tr>
    <tr>
        <td>abs</td><td>abs(数字)<br>返回数字的绝对值</td>
        <td>abs(-1) <br>>>1</td>
    </tr>
    <tr>
        <td>QUOTIENT</td><td>quotient(除数,被除数)<br>返回商的整数部分,该函数可用于舍掉商的小数部分。</td>
        <td>QUOTIENT(7,3) <br>>>2</td>
    </tr>
    <tr>
        <td>mod</td><td>mod(除数,被除数)<br>返回两数相除的余数</td>
        <td>MOD(7,3) <br>>>1</td>
    </tr>
    <tr>
        <td>SIGN</td><td>sign(数字)<br>返回数字的符号。当数字为正数时返回 1,为零时返回 0,为负数时返回 -1。</td>
        <td>SIGN(-9) <br>>>-1</td>
    </tr>
   <tr>
        <td>SQRT</td><td>sqrt(数字)<br>返回正平方根</td>
        <td>SQRT(9) <br>>>3</td>
    </tr>
    <tr>
        <td>TRUNC</td><td>trunc(数字)<br>将数字截尾取整</td>
        <td>TRUNC(9.222) <br>>>9</td>
    </tr>
    <tr>
        <td>int</td><td>int(数字)<br>将数字向下舍入到最接近的整数。</td>
        <td>int(9.222) <br>>>9</td>
    </tr>
    <tr>
        <td>gcd</td><td>gcd(数字1,...)<br>返回最大公约数</td>
        <td>GCD(3,5,7) <br>>>1</td>
    </tr>
    <tr>
        <td>LCM</td><td>lcm(数字1,...)<br>返回整数参数的最小公倍数</td>
        <td>LCM(3,5,7) <br>>>105</td>
    </tr>
    <tr>
        <td>combin</td><td>combin(总数,排列数)<br>计算从给定数目的对象集合中提取若干对象的组合数</td>
        <td>combin(10,2) <br>>>45</td>
    </tr>
    <tr>
        <td>PERMUT</td><td>permut(总数,排列数)<br>返回从给定数目的对象集合中选取的若干对象的排列数</td>
        <td>PERMUT(10,2) <br>>>990</td>
    </tr>
    <tr>
        <td>FIXED</td><td>fixed(数值[,小数位数[,有无逗号分隔符]])<br>将数字设置为具有固定小数位的文本格式</td>
        <td>FIXED(4567.89,1) <br>>>4,567.9</td>
    </tr>
    <tr>
    <td rowspan="15">三<br><br>角<br><br>函<br><br>数</td>
        <td>degrees</td><td>degrees(弧度)<br>将弧度转换为度</td>
        <td>degrees(pi()) <br>>>180</td>
    </tr>
    <tr>
        <td>RADIANS</td><td>radians(度)<br>将度转换为弧度</td>
        <td>RADIANS(180) <br>>>3.141592654</td>
    </tr>
    <tr>
        <td>cos</td><td>cos(弧度)<br>返回数字的余弦值</td>
        <td>cos(1) <br>>>0.540302305868</td>
    </tr>
    <tr>
        <td>cosh</td><td>cosh(弧度)<br>返回数字的双曲余弦值</td>
        <td>cosh(1) <br>>>1.54308063481</td>
    </tr>
    <tr>
        <td>SIN</td><td>sin(弧度)<br>返回给定角度的正弦值</td>
        <td>sin(1) <br>>>0.84147098480</td>
    </tr>
    <tr>
        <td>SINH</td><td>sinh(弧度)<br>返回数字的双曲正弦值</td>
        <td>sinh(1) <br>>>1.1752011936</td>
    </tr>
    <tr>
        <td>TAN</td><td>tan(弧度)<br>返回数字的正切值</td>
        <td>tan(1) <br>>>1.55740772465</td>
    </tr>
    <tr>
        <td>TANH</td><td>tanh(弧度)<br>返回数字的双曲正切值</td>
        <td>tanh(1) <br>>>0.761594155955</td>
    </tr>
    <tr>
        <td>acos</td><td>acos(数值)<br>返回数字的反余弦值</td>
        <td>acos(0.5) <br>>>1.04719755119</td>
    </tr>
    <tr>
        <td>acosh</td><td>acosh(数值)<br>返回数字的反双曲余弦值</td>
        <td>acosh(1.5) <br>>>0.962423650119</td>
    </tr>
    <tr>
        <td>asin</td><td>asin(数值)<br>返回数字的反正弦值</td>
        <td>asin(0.5) <br>>>0.523598775598</td>
    </tr>
    <tr>
        <td>asinh</td><td>asinh(数值)<br>返回数字的反双曲正弦值。</td>
        <td>asinh(1.5) <br>>>1.1947632172</td>
    </tr>
    <tr>
        <td>atan</td><td>atan(数值)<br>返回数字的反正切值</td>
        <td>atan(1) <br>>>0.785398163397</td>
    </tr>
   <tr>
        <td>atanh</td><td>atanh(数值)<br>返回参数的反双曲正切值</td>
        <td>atanh(1) <br>>>0.549306144334</td>
    </tr>
    <tr>
        <td>atan2</td><td>atan2(数值,数值)<br>从X和Y坐标返回反正切</td>
        <td>atan2(1,2) <br>>>1.10714871779</td>
    </tr>
    <tr>
        <td rowspan="8">四<br><br>舍<br><br>五<br><br>入</td>
        <td>ROUND</td><td>round(数值,小数位数)<br>返回某个数字按指定位数取整后的数字。</td>
        <td>ROUND(4.333,2) <br>>>4.33</td>
    </tr>
    <tr>
        <td>ROUNDDOWN</td><td>roundDown(数值,小数位数)<br>靠近零值,向下（绝对值减小的方向）舍入数字。</td>
        <td>ROUNDDOWN(4.333,2) <br>>>4.33</td>
    </tr>
    <tr>
        <td>ROUNDUP</td><td>roundUp(数值,小数位数)<br>远离零值,向上（绝对值增长的方向）舍入数字。</td>
        <td>ROUNDUP(4.333,2) <br>>>4.34</td>
    </tr>
    <tr>
        <td>CEILING</td><td>ceiling(数值,舍入基数)<br>向上舍入（沿绝对值增大的方向）为最接近的 舍入基数 的倍数。</td>
        <td>CEILING(4.333,0.1) <br>>>4.4</td>
    </tr>
    <tr>
        <td>floor</td><td>floor(数值,舍入基数)<br>向下舍入,使其等于最接近的 Significance 的倍数。</td>
        <td>FLOOR(4.333,0.1) <br>>>4.3</td>
    </tr>
    <tr>
        <td>even</td><td>even(数值)<br>返回沿绝对值增大方向取整后最接近的偶数。</td>
        <td>EVEN(3) <br>>>4</td>
    </tr>
    <tr>
        <td>ODD</td><td>odd(数值)<br>将数字向上舍入为最接近的奇型整数</td>
        <td>ODD(3.1) <br>>>5</td>
    </tr>
    <tr>
        <td>MROUND</td><td>mround(数值,舍入基数)<br>返回一个舍入到所需倍数的数字</td>
        <td>MROUND(13,5) <br>>>15</td>
    </tr>
    <tr>
        <td rowspan="2">随<br><br>机<br><br>数</td>
        <td>RAND</td><td>rand()<br>返回 0 到 1 之间的随机数 </td>
        <td>RAND() <br>>>0.2</td>
    </tr>
    <tr>
        <td>RANDBETWEEN</td><td>randBetween(最小整数,最大整数)<br>返回大于等于指定的最小值,小于指定最大值之间的一个随机整数。</td>
        <td>RANDBETWEEN(2,44) <br>>>9</td>
    </tr>
    <tr>
        <td rowspan="11">幂<br><br>/<br><br>对<br><br>数<br><br>/<br><br>阶<br><br>乘</td>
        <td>fact</td><td>fact(数值)<br>返回数的阶乘,一个数的阶乘等于 1*2*3*…* 该数。</td>
        <td>FACT(3) <br>>>6</td>
    </tr>
    <tr>
        <td>factdouble</td><td>factDouble(数值)<br>返回数字的双倍阶乘</td>
        <td>FACTDOUBLE(10) <br>>>3840</td>
    </tr>
    <tr>
        <td>POWER</td><td>power(数值,幂)<br>返回数的乘幂结果</td>
        <td>POWER(10,2) <br>>>100</td>
    </tr>
    <tr>
        <td>exp</td><td>exp(幂)<br>返回e的指定数乘幂</td>
        <td>exp(2) <br>>>7.389056099</td>
    </tr>
    <tr>
        <td>ln</td><td>ln(数值)<br>返回数字的自然对数</td>
        <td>LN(4) <br>>>1.386294361</td>
    </tr>
    <tr>
        <td>log</td><td>log(数值[,底数])<br>返回数字的常用对数,如省略底数,默认为10</td>
        <td>LOG(100,10) <br>>>2</td>
    </tr>
    <tr>
        <td>LOG10</td><td>log10(数值)<br>返回数字的10对数</td>
        <td>LOG10(100) <br>>>2</td>
    </tr>
    <tr>
        <td>MULTINOMIAL</td><td>multinomial(数值1,...)<br>返回参数和的阶乘与各参数阶乘乘积的比值</td>
        <td>MULTINOMIAL(1,2,3) <br>>>60</td>
    </tr>
    <tr>
        <td>PRODUCT</td><td>product(数值1,...)<br>将所有以参数形式给出的数字相乘,并返回乘积值。</td>
        <td>PRODUCT(1,2,3,4) <br>>>24</td>
    </tr>
    <tr>
        <td>SQRTPI</td><td>sqrtPi(数值)<br>返回某数与 PI 的乘积的平方根</td>
        <td>SQRTPI(3) <br>>>3.069980124</td>
    </tr>
    <tr>
        <td>SUMSQ</td><td>sumQq(数值,...)<br>返回参数的平方和</td>
        <td>SUMSQ(1,2) <br>>>5</td>
    </tr>
    <tr>
        <td rowspan="12">转<br><br>化</td>
        <td>DEC2BIN</td><td>DEC2BIN(数值[,位数])<br>十进制转二进制 </td>
        <td>DEC2BIN(100) <br>>> </td>
    </tr>
    <tr>
        <td>DEC2OCT</td><td>DEC2OCT(数值[,位数])<br>十进制转八进制 </td>
        <td>DEC2OCT(100) <br>>> </td>
    </tr>
{'fraction_non_alphanumeric': 0.2660409014646533, 'fraction_numerical': 0.05287262503967714, 'mean_word_length': 2.6338770802438622, 'pattern_counts': {'":': 18, '<': 1450, '<?xml version=': 0, '>': 1708, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1610343', 'n_tokens_mistral': 12504, 'n_tokens_neox': 12301, 'n_words': 1069}