目次

Search

  1. はじめに
  2. タスクフローとリニアタスクフロー
  3. タスクフロー
  4. リニアタスクフロー

タスクフロー

タスクフロー

round (Numbers)

round (Numbers)

数値を指定の桁数または小数点以下の桁数に丸めます。また、roundを使用して日付を丸めることもできます。
round関数は次のように動作します。
  • 引数に最も近い、端数のない数値を返します。
  • 引数に近い数値が2つある場合は、正の無限大に最も近い数値が返されます。
  • 引数のデータ型がxs:float、xs:double、xs:decimal、またはxs:integerの4つの数値データ型のいずれかである場合、結果のデータ型は引数のデータ型と等しくなります。
  • 引数のデータ型が数値データ型の1つから派生したデータ型である場合、結果は基本数値データ型のインスタンスになります。

構文

fn:round(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
数値データ型で指定する必要があります。有効なトランスフォーメーション式を必要に応じて入力できます。値を丸める前に、演算子を使用して算術演算を実行できます。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります:
()
この関数は、数値の小数部分を切り捨てて、最も近い整数に丸めます。例えば、round(12.99, -)は13を返し、round(15.20, -)は15を返します。

戻り値

数値。
いずれかの引数がNULLの場合、roundはNULLを返します。
次の式は、丸められた値を[Price]カラムに返します。
fn:round(PRICE)
次の表に、一部のサンプル値と戻り値を示します。
PRICE
RETURN VALUE
12.99
13.0
-15.99
-16.0
-18.99
-19.0
56.95
57.0
NULL
NULL
精度をより具体的に指定して、数値を最も近い整数に丸めたり、小数部分を切り捨てたりする場合は、round-half-to-even関数を使用することをお勧めします。
fn:round-half-to-even(arg, precision)
正の精度を入力すると、関数は数値の小数点以下の桁数をこの値に丸めます。例えば、round(12.99, 1)は13.0を返し、round(15.44, 1)は15.4を返します。
負の精度を入力すると、関数は小数点の左側をこの桁数だけ丸めて、整数を返します。例えば、round(12.99, -1)は10を返し、round(15.99, -1)は20を返します。
返される値は、引数に最も近い値、つまり、負の精度の10の倍数である引数に数値的に最も近い値です。このような2つの値が非常に近い場合(例えば、引数の小数の部分がどちらも.500...である場合など)、関数は最下位桁が偶数である最も小さい値を返します。

次の式は、Priceカラムの値を小数点以下3桁に丸めた値を返します。
fn:round-half-to-even(PRICE, 3)
次の表に、一部のサンプル値と戻り値を示します。
PRICE
RETURN VALUE
12.9936
12.994
15.9949
15.995
-18.8678
-18.868
56.9561
56.956
NULL
NULL
精度の引数に負の整数を渡すことにより、小数点の左側を指定桁数に丸めることもできます。
fn:round-half-to-even(PRICE, -2)
次の表に、一部のサンプル値と戻り値を示します。
PRICE
RETURN VALUE
13242.99
13200.0
1435.99
1400.0
-108.95
-100.0
NULL
NULL
精度の引数を省略すると、関数は数値を最も近い整数に丸めます。
fn:round-half-to-even(PRICE, 0)
次の表に、一部のサンプル値と戻り値を示します。
PRICE
RETURN VALUE
12.99
13.0
-15.99
-16.0
-18.99
-19.0
56.95
57.0
NULL
NULL