算術フォーマッタ

Version 23.4.8841


算術フォーマッタ


Common Math Formatters

The following formatters are the most common math formatters. An example for each formatter is provided for reference.

add(value)

Adds the input attribute/value to the value parameter and returns the result.

Example

<!-- 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 executes 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])

Returns true if the input attribute/value is greater than the value parameter, and false otherwise.

If ifgreater is supplied, that value is returned instead of true (if the input is greater than value), and if ifnotgreater is supplied, that value is returned instead of false (if the input is not greater than value).

Example

<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])

Returns true if the input attribute/value is less than the value parameter, and false otherwise.

If ifless is supplied, that value is returned instead of true (if the input is less than value), and if ifnotless is supplied, that value is returned instead of false (if the input is not less than value).

Example

<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)

Multiplies the input attribute/value with the value parameter and returns the result.

Example

<!-- 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)

Generates a random integer between 0 and upperBound.

This formatter does not modify the input attribute (variable), so no input attribute is required.

Example

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

Other Math Formatters

The following formatters are less common than those described in the previous section.

abs()

数値属性値の絶対値を返します。

and(value)

2つの値のAND を返します。両側の値は、1/0、yes/no、true/false である必要があります。

  • value:比較するboolean 値。

ceiling()

数値属性値以上で最小の整数を返します。

currency([integer_count])

通貨としてフォーマットされた数値を返します。

  • count:小数点以下の表示桁数を指定する数値(オプション)。デフォルトは2です。

decimal([integer_count])

Returns the numeric value formatted as a decimal number, with commas to delimit thousands, millions, and so on.

  • count:小数点以下の表示桁数を指定する数値(オプション)。デフォルトは2です。

div([value])

数値属性値をパラメータの指定された値で除算した結果を返します。

  • value:数値属性値を除算する数値(オプション)。デフォルトは2です。

divide([value])

数値属性値をパラメータの指定された値で除算した結果を返します。

  • value:数値属性値を除算する数値(オプション)。デフォルトは2です。

expr(expression)

数式を評価します。

  • expression:式。

floor()

指定された数値属性値以下で最大の整数を返します。

format(pattern)

Formats a numerical result based on the provided pattern and the platform’s behavior.

  • pattern: The formatting pattern to use.

Examples

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

The tmp attribute, set to $1,440.123, is passed through the format("#.##") formatter. The result is $1440.12.

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

The rnd attribute, set to 1055.68, is passed through the format("#.#") formatter. The result is 1055.7.

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

属性値が、1つ目のパラメータ値以上で2つ目のパラメータ値以下の場合は true(または ifbetween)を返し、それ以外の場合は false(または ifnotbetween)を返します。

  • lowvalue:確認する範囲の下限。
  • highvalue:確認する範囲の上限。
  • ifbetween:属性値が1つ目のパラメータ値以上で、2つ目のパラメータ値以下の場合に返される値(オプション)。
  • ifnotbetween:属性値が1つ目のパラメータ値以下、または2つ目のパラメータ値以上の場合に返される値(オプション)。

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

属性値がパラメータ値と等しい場合は true(または ifequal)を返し、それ以外の場合は false(または ifnotequal)を返します。

  • value:属性値と比較する数値。
  • ifequal:属性値がパラメータ値と等しい場合に返される値(オプション)。
  • ifnotequal:属性値がパラメータ値と等しくない場合に返される値(オプション)。

modulus(value)

数値属性値を指定されたパラメータ値で除算した係数を返します。

  • value:属性値を除算する数値。

or(value)

2つの値のOR を返します。両側の値は、1/0、yes/no、true/false である必要があります。

  • value:比較するboolean 値。

percentage([integer_count])

パーセンテージとしてフォーマットされた数値を返します。

  • count:小数点以下の表示桁数を示す数値(オプション)。

pow([value])

パラメータ値で指定された指数で累乗された数値属性値を返します。

  • value:属性値を引き上げる指数(オプション)。デフォルトは2です。

round([integer_value])

パラメータで指定された小数点以下の桁数に丸められた数値属性値を返します。

  • value:小数点以下の桁数(オプション)。デフォルトは2です。

Note: The rounding strategy used is based on your operating system. .NET uses Midpoint Rounding, and Java uses Half Even.

sqrt()

数値属性値の平方根を返します。

subtract([value])

数値属性値とパラメータで指定された値の差を返します。

  • value:属性値を減算する数値(オプション)。