跳转到主要内容

常用数字格式化器

以下格式化器是最常用的数字格式化器。每个格式化器都提供了一个示例以供参考。
某些格式化器的可选参数周围的方括号不是必需的。它们用于表示该参数是可选的。

add(value)

将输入属性/值与 value 参数相加,并返回结果。默认值为 1

示例

greaterthan(value[, ifgreater][, ifnotgreater])

如果输入属性/值大于 value 参数,则返回 true;否则返回 false 如果提供了 ifgreater,当输入大于 value 时会返回该值而不是 true;如果提供了 ifnotgreater,当输入不大于 value 时会返回该值而不是 false

示例

lessthan(value[, ifless][, ifnotless])

如果输入属性/值小于 value 参数,则返回 true;否则返回 false 如果提供了 ifless,当输入小于 value 时会返回该值而不是 true;如果提供了 ifnotless,当输入不小于 value 时会返回该值而不是 false

示例

multiply(value)

将输入属性/值与 value 参数相乘,并返回结果。

示例

rand(upperBound)

生成一个介于 0 和 upperBound 之间的随机整数。 此格式化器不会修改输入属性(变量),因此不需要输入属性。

示例

其它数字格式化器

以下格式化器不如上一节中描述的格式化器常用。

abs()

返回数字属性值的绝对值。

and(value)

返回两个值的 AND 结果。两边提供的值必须是 1/0、yes/no 或 true/false。
  • value:用于比较的布尔值。

ceiling()

返回大于或等于数字属性值的最小整数。

currency([integer_count])

返回格式化为货币的数值。
  • count:可选数字,指定小数点右侧显示的位数。默认值为 2

decimal([integer_count])

返回格式化为十进制数的数值,并使用逗号分隔千位、百万位等。
  • count:可选数字,指定小数点右侧显示的位数。默认值为 2

div([value])

返回数字属性值除以参数指定值的结果。
  • value:可选数值,用于除以数字属性值。默认值为 2

divide([value])

返回数字属性值除以参数指定值的结果。
  • value:可选数值,用于除以数字属性值。默认值为 2

expr(expression)

计算自由形式的数学或逻辑表达式并返回结果。不同于 lessthan()isequal() 这类单一操作格式化器,expr() 可直接接受标准比较和逻辑运算符,因此是复合条件或多变量比较的首选方法。
  • expression:自由形式表达式。

支持的运算符

示例

  1. 用于 <= 检查的等效链式格式化器和 expr() 方法
    预期输出 将写入名为 order_fulfillment_result.txt 的文件,其内容为 canFulfill=true,并且传出消息标头 X-Can-Fulfill 设置为 true
  2. >= 检查
    预期输出
    • score >= minimum: true
    • score >= target: true
    • score >= stretch: false
  3. 包含多个变量的复合条件
    预期输出 priceValid = true
  4. 从 XML 输入文件读取值 当 Script 端口处理传入消息时,消息正文可通过 [FilePath] 访问。以下示例展示如何打开该输入,使用 xpath() 从中读取值,然后使用 expr() 计算这些值。给定以下输入消息:
    此脚本读取这些值并判断订单是否可以履行:
    预期输出 canFulfill = true
使用算术或数值比较运算符时,表达式中引用的属性必须包含数值。非数字字符串可能会产生意外结果。

floor()

返回小于或等于数字属性值的最大整数。

format(pattern)

根据提供的模式和平台行为格式化数值结果。
  • pattern:要使用的格式化模式。

示例

tmp 属性被设置为 $1,440.123,并通过 format("#.##") 格式化器处理。结果为 $1440.12
rnd 属性被设置为 1055.68,并通过 format("#.#") 格式化器处理。结果为 1055.7

isbetween(integer_lowvalue, integer_highvalue[, ifbetween][, ifnotbetween])

如果属性值大于或等于第一个参数值且小于或等于第二个参数值,则返回 true(或 ifbetween)。否则返回 false(或 ifnotbetween)。
  • lowvalue:要检查范围的下限。
  • highvalue:要检查范围的上限。
  • ifbetween:可选值,如果属性值大于或等于第一个参数值且小于或等于第二个参数值,则返回此值。
  • ifnotbetween:可选值,如果属性值小于第一个参数值或大于第二个参数值,则返回此值。

isequal(value[, ifequal][, ifnotequal])

如果属性值等于参数值,则返回 true(或 ifequal)。否则返回 false(或 ifnotequal)。
  • value:要与属性值比较的数值。
  • ifequal:可选值,如果属性值等于参数值,则返回此值。
  • ifnotequal:可选值,如果属性值不等于参数值,则返回此值。

modulus(value)

返回数字属性值除以指定参数值后的模数。
  • value:用于除以属性值的数字。

number(value[, format][, locale])

返回格式化为十进制数的数值。可选择添加格式和区域设置。
  • format:可选的十进制数字格式。默认值为 #.00。可以使用以下特殊字符:
  • locale:区域设置信息。默认值为不变区域性或区域设置,这意味着它不与特定国家或地区关联。它接受语言标签(例如 enfren-USen-INfr-FRzh-CN)。

or(value)

返回两个值的 OR 结果。两边提供的值必须是 1/0、yes/no 或 true/false。
  • value:用于比较的布尔值。

percentage([integer_count])

返回格式化为百分比的数值。
  • count:可选数字,表示小数点右侧显示的位数。

pow([value])

返回数字属性值的指定参数值次幂。
  • value:可选的幂,用于将属性值提升到该幂。默认值为 2

round([integer_value])

返回数字属性值,并按参数指定的小数位数进行舍入。
  • value:可选的小数位数。默认值为 2
  • rounding_mode:指定能够丢弃精度的数值运算的舍入行为。可接受的值为:DefaultToEvenAwayFromZeroToZeroToNegativeInfinityToPositiveInfinity。使用的默认舍入策略取决于你的操作系统。.NET 使用 ToEven,Java 使用 Half Even
还可以指定全局 RoundingMode 环境变量,并将其中一个 rounding_mode 值作为其值。这样做时,只要格式化器中未明确指定 rounding_mode 就会使用该舍入模式。更具体地说, 会按以下顺序检查值:
  1. rounding_mode 输入
  2. RoundingMode 环境变量
  3. 如上所述,由操作系统确定的默认值

sqrt()

返回数字属性值的平方根。

subtract([value])

返回数字属性值与参数指定值之间的差值。
  • value:可选数值,用于从属性值中减去。默认值为 1