Skip to content

Commit 2fe0cde

Browse files
author
linzhijun
committed
修改 README.md
1 parent 860dd92 commit 2fe0cde

File tree

2 files changed

+32
-11
lines changed

2 files changed

+32
-11
lines changed

README.md

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ ToolGood.Algorithm是一个功能强大、轻量级、兼容`Excel公式`的算
3636
var j = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare\", \"Age\":51, \"Birthday\":\"04/26/1564 00:00:00\"}').Age", null);//Return 51 返回51
3737
var k = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare \", \"Age\":51, \"Birthday\":\"04/26/1564 00:00:00\"}')[Name].Trim()", null);//Return to "William Shakespeare" 返回"William Shakespeare" (不带空格)
3838
var l = engine.TryEvaluate("json('{\"Name1\":\"William Shakespeare \", \"Age\":51, \"Birthday\":\"04/26/1564 00:00:00\"}')['Name'& 1].Trim().substring(2, 3)", null);//Return "ill" 返回"ill"
39-
39+
var n = engine.TryEvaluate("{Name:\"William Shakespeare\", Age:51, Birthday:\"04/26/1564 00:00:00\"}.Age", null);//Return 51 返回51
40+
var m = engine.TryEvaluate("{1,2,3,4,5,6}.has(13)", true);//Return false 返回false
4041
```
4142

4243
支持常量`pi`, `e`, `true`, `false`
@@ -47,12 +48,13 @@ bool转数值,假为`0`,真为`1`。bool转字符串,假为`FALSE`,真
4748

4849
索引默认为`Excel索引`,如果想用c#索引,请设置`UseExcelIndex``false`
4950

50-
中文符号自动转成英文符号:`括号`, `方括号`, `逗号`, `引号`, `双引号`
51-
51+
中文符号自动转成英文符号:`括号`, `逗号`, `引号`, `双引号`,``````,``,`等号`
5252

5353
注:字符串拼接使用`&`
5454

5555

56+
57+
5658
注:`find`为Excel公式,find(要查找的字符串, 被查找的字符串[, 开始位置])
5759

5860
## 自定义参数
@@ -96,7 +98,7 @@ bool转数值,假为`0`,真为`1`。bool转字符串,假为`FALSE`,真
9698
9799
```
98100

99-
参数以方括号定义,如 `[参数名]`
101+
参数定义,如 `[参数名]``【参数名】``#参数名#``@参数名`
100102

101103
注:还可以使用`AddParameter``AddParameterFromJson`添加方法,使用`DiyFunction`+=来自定义函数。
102104

@@ -105,15 +107,34 @@ bool转数值,假为`0`,真为`1`。bool转字符串,假为`FALSE`,真
105107

106108
## 自定义参数
107109
``` csharp
108-
var helper = new ToolGood.Algorithm.AlgorithmEngineHelper();
109-
helper.IsKeywords("false"); // return true
110-
helper.IsKeywords("true"); // return true
111-
helper.IsKeywords("mysql"); // return false
110+
AlgorithmEngineHelper.IsKeywords("false"); // return true
111+
AlgorithmEngineHelper.IsKeywords("true"); // return true
112+
AlgorithmEngineHelper.IsKeywords("mysql"); // return false
112113
113-
DiyNameInfo p5 = helper.GetDiyNames("ddd(d1, 22)");
114+
DiyNameInfo p5 = AlgorithmEngineHelper.GetDiyNames("ddd(d1, 22)");
114115
Assert.AreEqual("ddd", p5.Functions[0]);
115116
Assert.AreEqual("d1", p5.Parameters[0]);
116117
```
118+
## 支持单位
119+
120+
可设置标准单位:长度(默认:`m`)、面积(默认:`m2`)、体积(默认:`m3`)、重量(默认:`kg`)。
121+
122+
注:公式计算时,先将带单位的数量转成标准单位,再进行数字计算。
123+
124+
``` csharp
125+
AlgorithmEngine engine = new AlgorithmEngine();
126+
bool a = engine.TryEvaluate("1=1m", false); // return true
127+
bool b = engine.TryEvaluate("1=1m2", false); // return true
128+
bool c = engine.TryEvaluate("1=1m3", false); // return true
129+
bool d = engine.TryEvaluate("1=1kg", false); // return true
130+
131+
// 单位转化
132+
var num = AlgorithmEngineHelper.UnitConversion(1M,"","千米");
133+
134+
// 不抛错例子
135+
bool error = engine.TryEvaluate("1m=1m2", false); // return true
136+
```
137+
117138

118139
## Excel公式
119140

@@ -123,7 +144,6 @@ bool转数值,假为`0`,真为`1`。bool转字符串,假为`FALSE`,真
123144

124145
注2:函数名带★,表示第一个参数可以前置,如`(-1).ISTEXT()`
125146

126-
127147
注3:函数名带▲,表示受`Excel索引`影响,
128148

129149
#### 逻辑函数

csharp/ToolGood.Algorithm2.Test/Program.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ static void Main(string[] args)
3131
var j = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare\",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}').Age", null);//Return 51 返回51
3232
var k = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')[Name].Trim()", null);//Return to "William Shakespeare" 返回"William Shakespeare" (不带空格)
3333
var l = engine.TryEvaluate("json('{\"Name1\":\"William Shakespeare \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')['Name'& 1].Trim().substring(2,3)", null); ;//Return "ill" 返回"ill"
34-
34+
var n = engine.TryEvaluate("{Name:\"William Shakespeare\", Age:51, Birthday:\"04/26/1564 00:00:00\"}.Age", null);//Return 51 返回51
35+
var m = engine.TryEvaluate("{1,2,3,4,5,6}.has(13)", true);//Return false 返回false
3536

3637

3738
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");

0 commit comments

Comments
 (0)