NpsFormula用于+-*/四则运算和公式,NpsFormula全部基于BigDecimal进行高精度运算。
目前内嵌的公式有:sum、average、max、min、abs、mod、int、round、trunc、cos、sin、tan、acos、asin、atan。
还支持if、or、and关系运算。
NpsFormula还支持自定义变量。内置的变量有PI、E.
|
NpsFormula(String expression) 构造函数 |
|
| void |
SetExpression(String expression) 设定表达式 |
| void |
AddSymbol(String symbol,Object value) 添加自定义变量 |
| void |
RemoveSymbol(String symbol) 删除变量 |
| String |
Evaluate() 返回以String表示的运算结果 |
| SUM |
返回所有数字之和。 SUM(number1,number2, ...) Number1, number2, ... 为 1 到 n 个需要求和的参数。如果Number是Vector或数组Symbol,将自动累加Symbol内的所有值。 =SUM(3, 2) 将 3 和 2 相加 (5) |
| average |
返回参数的平均值(算术平均值)。 AVERAGE(number1,number2,...) Number1, number2, ... 为 1 到 n 个需要计算平均值的参数。如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 =AVERAGE(10,7,9,27,2) 上面数字的平均值 (11) |
| max |
返回一组值中的最大值。 MAX(number1,number2,...) Number1, number2, ... 为 1 到 n 个需要计算最大值的参数。如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 =MAX(10,7,9,27,2) 最大值为27 |
| min | 返回一组值中的最小值。 MIN(number1,number2,...) Number1, number2, ... 为 1 到 n 个需要计算最小值的参数。如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 =MIN(10,7,9,27,2) 最小值为2 |
| abs |
返回数字的绝对值。 ABS(number) Number 需要计算其绝对值的实数。如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 =ABS(-2) -2 的绝对值(2) |
| mod |
返回两数相除的余数。结果的正负号与除数相同。 MOD(number,divisor) Number 为被除数。 Divisor 为除数。 =MOD(3, 2) 3/2 的余数 (1) |
| int |
将数字向下舍入到最接近的整数。 INT(number) Number 需要进行向下舍入取整的实数。如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 =INT(8.9) 将 8.9 向下舍入到最接近的整数 (8) =INT(-8.9) 将 -8.9 向下舍入到最接近的整数 (-9) |
| round |
返回某个数字按指定位数取整后的数字。 ROUND(number,num_digits) Number 需要进行四舍五入的数字。如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 Num_digits 指定的位数,按此位数进行四舍五入。 =ROUND(2.15, 1) 将 2.15 四舍五入到一个小数位 (2.2) |
| trunc |
将数字的小数部分截去,返回整数。 TRUNC(number,num_digits) Number 需要截尾取整的数字。如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。 =TRUNC(8.9) 8.9 的整数部分 (8) |
| cos |
返回给定角度的余弦值。 COS(number) Number 为需要求余弦的角度,以弧度表示。如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 =COS(60*PI()/180) 60 度的余弦值 (0.5) |
| sin |
返回给定角度的正弦值。 SIN(number) Number 为需要求正弦的角度,以弧度表示。如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 =SIN(PI()/2) pi/2 弧度的正弦值 (1) |
| tan |
返回给定角度的正切值。 TAN(number) Number 为要求正切的角度,以弧度表示。如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 =TAN(45*PI()/180) 45 度的正切值 (1) |
| acos |
返回数字的反余弦值。反余弦值是角度,它的余弦值为数字。返回的角度值以弧度表示,范围是 0 到 pi。 ACOS(number) Number 角度的余弦值,必须介于 -1 到 1 之间。 如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 =ACOS(-0.5)*180/PI() 以度表示 -0.5 的反余弦值 (120) |
| asin |
返回参数的反正弦值。反正弦值为一个角度,该角度的正弦值即等于此函数的 number 参数。返回的角度值将以弧度表示,范围为 -pi/2 到 pi/2。 ASIN(number) Number 角度的正弦值,必须介于 -1 到 1 之间。 如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 =ASIN(-0.5)*180/PI() 以度表示 -0.5 的反正弦值 (-30) |
| atan |
返回反正切值。反正切值为角度,其正切值即等于 number 参数值。返回的角度值将以弧度表示,范围为 -pi/2 到 pi/2。 ATAN (number) Number 角度的正切值。 如果Number是Vector或数组Symbol,将同时计算Symbol内的所有值。 =ATAN(1)*180/PI() 以度表示 1 的反正切值 (45) |
| if |
执行真假值判断,根据逻辑计算的真假值,返回不同结果。 IF(logical_test,value_if_true,value_if_false) Logical_test 表示计算结果为 TRUE 或 FALSE 的任意值或表达式。本参数可使用任何比较运算符。 Value_if_true logical_test 为 TRUE 时返回的值。Value_if_true 也可以是其他公式。 Value_if_false logical_test 为 FALSE 时返回的值。Value_if_false 也可以是其他公式。 =IF(BUDGET<=100,"Within budget","Over budget") 将根据变量BUDGETDE值判断是否超出预算 |
| or |
在其参数组中,任何一个参数逻辑值为 TRUE,即返回 TRUE;任何一个参数的逻辑值为 FALSE,即返回 FALSE。 OR(logical1,logical2,...) Logical1,logical2,... 为需要进行检验的条件,分别为 TRUE 或 FALSE。 =OR(1+1=1,2+2=5) 所有参数的逻辑值为 FALSE (FALSE) |
| and |
所有参数的逻辑值为真时,返回 TRUE;只要一个参数的逻辑值为假,即返回 FALSE。 AND(logical1,logical2, ...) Logical1, logical2, ... 表示待检测的条件值,各条件值可为 TRUE 或 FALSE。 =AND(TRUE, FALSE) 一个参数的逻辑值为假 (FALSE) |
| PI | 返回数字 3.1415926535897931,即数学常量 pi,精确到小数点后 16 位。 |
| E | 返回数字 2.7182818284590451,即科学计数法E,精确到小数点后 16 位。 |