计算格式化器

Version 23.4.8843


计算格式化器


常用计算格式化器

下面的格式化器是常用计算格式化器。每个格式化器都有一个例子供参考。

add(value)

返回数字属性值和参数指定的值之和。

  • value:可选值,加到指定的属性值上。默认值为 1。

示例

<!-- count the number of loops in an XML document using xmlDOMSearch -->

<arc:set attr="xml.uri" value="[FilePath]" />
<arc:set attr="xml.xpath" value="/Items/test/loop" />

<arc:call op="xmlDOMSearch" in="xml">
  <!-- this code will execute for each occurrence of the 'xpath' in the XML document -->
  <arc:set attr="loopCount" value="[loopCount | def(0) | add(1)]" />
</arc:call>

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

如果属性值大于参数值,返回 true(或 ifgreater),否则返回 false(或 ifnotgreater)。

  • value:与属性值比较的数值。
  • ifgreater:可选值,如果属性值大于参数值,则返回此值。
  • ifnotgreater:可选值,属性值不大于参数值时,则返回此值。

示例

<arc:set attr="totalCost" value="[xpath(Items/Order/TotalCost)]" />
<arc:if exp="[totalCost | greaterthan(1000)]">
  <arc:set attr="highValueOrder" value="true" />
</arc:if>

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

如果属性值小于参数值,返回 true(或 ifless),否则返回 false(或 ifnotless)。

  • value:与属性值比较的数值。
  • ifless:可选值,如果属性值小于参数值,则返回此值。
  • ifnotless:可选值,如果属性值不小于参数值,则返回此值。

示例

<arc:set attr="totalCost" value="[xpath(Items/Order/TotalCost)]" />
<arc:if exp="[totalCost | lessthan(0)]">
  <arc:throw code="1" desc="ERROR: Invalid order total." />
</arc:if>

multiply(value)

返回数值属性值与参数的指定值相乘的结果。

  • value:可选值,用于将数值属性值乘以数值属性值。默认值为 2。

示例

<!-- find the total cost by multiplying the price and the quantity of a purchased item -->
<arc:set attr="item.price" value="[xpath(lineitem/costperunit)]" />
<arc:set attr="item.quantity" value="[xpath(lineitem/quantitypurchased)]" />
<arc:set attr="item.totalcost" value="[item.price | multiply([item.quantity])]" />

rand(upperBound)

返回一个 0 和参数值之间的随机整数。

  • value:可选值,用于限制最高可能的随机整数。默认值是 100。

示例

<!-- add a random number to the end of a filename -->
<arc:set attr="myFilename" value="myfile-[rand(100000)].xml" />

其它计算格式化器

下面出现的是一些未提及的不太常用的计算格式化器。

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)

计算数学表达式。

  • expression: 数学表达式。

floor()

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

format(“pattern”)

用指定的格式和相应平台行为格式化数字。

  • pattern: 要使用的格式。

示例

<rsb:set attr="tmp" value="$1,440.123" />
[tmp]
<br>
[tmp | format("#.##")]

属性 tmp 的值被设置为 $1,440.123,然后使用 format("#.##") 来格式化。输出结果为 1440.12

<rsb:set attr="rnd" value="1055.68" />
[rnd]
<br>
[rnd | format("#.#")]

属性 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:属性值除以的数字。

or(value)

返回两个值的 OR 结果。两边提供的值必须是 1/0,yes/no 或 true/false。

  • value:用于比较的布尔值。

percentage([integer_count])

返回百分比格式的数字。

  • count: 可选的小数点位数。

pow([value])

返回数值属性值,提升到参数值所指定的幂。

  • value:可选值,将属性值提高到的幂数。默认值是 2。

round([integer_value])

返回数值属性值,四舍五入到参数指定的小数位数。

注意:所使用的舍入策略基于操作系统。 .NET 使用 中点舍入,而 Java 使用 Half 偶数

  • value:可选的小数点位数。默认值为 2。

sqrt()

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

subtract([value])

返回数值属性值与参数指定值之间的差值。

  • value:属性值减去的可选数值。