表达式计算器

计算表达式的结果,表达式中包含整数、小数、数值变量、用于字符串比较的字符串变量、算术运算符、布尔运算符或一组函数。

属性

属性
说明
表达式
要计算的表达式。
表达式可以包含无限多个左括号和右括号,但左括号和右括号的数量必须相等。如果表达式不符合正确的语法,则转换器将不会执行计算。
模式
动态链接的方向:
  • 从源节点读取到父节点。
  • 从父节点写入源节点。
  • 从源节点读取到父节点,从父节点写入源节点。

一个或多个变量,由具有以下
{
index
}
格式的索引编号的占位符进行标识。索引编号是递进的,必须是大于零
{0}
的整数。
占位符可以按任意顺序显示在表达式中。在表达式中使用任意数量的圆括号。

文本

  • 布尔。
  • 整数。
  • 小数,其中的小数分隔符必须为点。
  • 带有前缀
    0x
    的十六进制数。
  • 文本,例如由双引号分隔的字符串。
    小贴士: 重复两次的双引号 (
    ""
    ) 被解释为转义序列。
  • 日期和时间。例如,
    2017-06-28T15:26:06.0790910

运算符

类别
操作员
关联性
注释
一元
一元负号:
-
Bitwise NOT:
~
强制转换运算符:
(type)
从右到左
强制转换运算符
(type)
仅适用于所有数字数据类型和布尔类型。
乘法
*
,
/
,
%
从左到右
加法
+
-
从左到右
移位
<<
>>
从左到右
移位和关系运算符适用于以下数据类型:
  • Numeric
  • DateTime
  • Duration
关系
<
<=
>
>=
从左到右
相等
==
!=
从左到右
相等运算符适用于以下数据类型:
  • Numeric
  • DateTime
  • Duration
  • String
  • LocalizedText
Bitwise AND、XOR、OR
&
^
|
从左到右
Logical AND
&&
从左到右
Logical OR
||
从左到右

数据类型

表达式计算器中的数据类型规范:
  • 文本整数为 Int32。
  • 小数文本为 Double。
  • 数值被视为 Int32。
  • 文本值 true 和 false 被解释为 Boolean 值。
  • / 运算符始终返回 Double 值。
  • 当除以模零时,% 运算符会生成异常。
  • % 运算符接受 Float 和 Double 运算符。
  • 除了符号返回 Int32 值以外,所有其他函数均返回 Double 值。
一元强制运算符的
type
可以是以下数据类型:
  • bool、Boolean
  • sbyte、SByte
  • short、Int16
  • int、Int32
  • long、Int64
  • byte、Byte
  • ushort、UInt16
  • uint、UInt32
  • ulong、UInt64
  • float、Float
  • double、Double
适用于特定数据类型的运算符:
操作员
Operand1
Operand2
说明
加法
DateTime
整数
Operand2
被解释为毫秒。
加法
整数
DateTime
Operand1
被解释为毫秒。
加法
DateTime
TimeZone (Struct)
Operand2
被解释为分钟 (TimeZone.Offset)。
加法
TimeZone (Struct)
DateTime
Operand1
被解释为分钟 (TimeZone.Offset)。
加法
TimeZone
整数
Operand1
被解释为分钟 (TimeZone.Offset)。
Operand2
被解释为分钟。
加法
整数
TimeZone
Operand1
被解释为分钟。
Operand2
被解释为分钟 (TimeZone.Offset)。
减法
DateTime
整数
Operand2
被解释为毫秒。
减法
DateTime
TimeZone (Struct)
Operand2
被解释为分钟 (TimeZone.Offset)。
减法
TimeZone
整数
Operand1
被解释为分钟 (TimeZone.Offset)。
Operand2
被解释为分钟。

功能

表达式计算器中使用的函数:
功能
语法
说明
返回数据类型
max
max(
value1
,
value2
,
value3
, ...)
返回最大值。
Double
min
min(
value1
,
value2
,
value3
, ...)
返回最小值。
Double
avg
avg(
value1
,
value2
,
value3
, ...)
返回给定值的平均值。
Double
abs
abs(
value
)
返回给定数值的绝对值。
Double
trunc
trunc(
value
)
返回小数的整数部分。
Double
ceil
ceil(
value
)
返回超出部分的近似值。
Double
floor
floor(
value
)
返回不足部分的近似值。
Double
round
round(
value
)
返回最接近整数的近似值。
Double
sqrt
sqrt(
value
)
返回给定数值的平方根。
Double
sign
sign(
value
)
检查给定浮点数是否为负数。如果为 True,则返回
0
;如果为 False,则返回
1
Int32
like
like(
string_value
,
pattern
)
如果
string_value
参数与
pattern
相匹配,则返回
true
Boolean
isempty
isempty(
variable
)
检查给定的 NodeID、String、LocalizedText 或 DataTime 是否为空。
Boolean
if
if(
condition
,
value_if_true
,
value_if_false
)
检查
value_if_true
value_if_false
参数的数据类型是否相同。
value_if_true
数据类型

输出

表达式的结果值。

示例

提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈