目次

Search

  1. はじめに
  2. トランスフォーメーション言語
  3. 定数
  4. 演算子
  5. 変数
  6. 日付
  7. 関数
  8. カスタム関数の作成
  9. カスタム関数APIリファレンス

トランスフォーメーション言語リファレンス

トランスフォーメーション言語リファレンス

TRUNC(数値)

TRUNC(数値)

数値が特定の桁数になるように切り詰めます。また、TRUNCを使用して日付を切り詰めることもできます。

構文

TRUNC(
numeric_value
[,
precision
] )
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
numeric_value
必須
数値データ型。切り詰める値を渡します。数値データ型を求める有効なトランスフォーメーション式を必要に応じて入力できます。
precision
オプション
正または負の整数です。整数を求める有効なトランスフォーメーション式を必要に応じて入力できます。この整数は、切り詰め後の桁数を指定します。
precision
が正の整数である場合、TRUNCは
precision
で指定された値を小数点以下の桁数として
numeric_value
を返します。
precision
が負の整数である場合、TRUNCは小数点の左側の指定された桁数をゼロに変更します。
precision
引数を省略すると、TRUNCは
numeric_value
の小数部分を切り捨てて、整数を返します。
10進数の
precision
値を渡すと、
PowerCenter統合サービス
numeric_value
を近似値の整数に丸めてから式を評価します。
高精度モードでセッションを実行する場合は、切り詰めを行う前にROUND関数を使用します。
例えば、以下の式を使用してQTYポートの値の切り詰めを行うとします。
TRUNC ( QTY / 15 )
QTYの値が15000000である場合は、セッションから値999999が返されます。しかし、正しい値は1000000です。
実行時に
PowerCenter統合サービス
は、式の定数部分を評価し、その後に変数部分を評価します。
上の式で、QTYは変数値であり、(1/15)は定数値です。
QTY = 15000000の場合、この式は以下のように評価されます。
TRUNC ( 15000000 * (1/15) TRUNC ( 15000000 * (1/15) = TRUNC ( 15000000 * 0.0666666666666666) = TRUNC ( 15000000 * 0.0666666666666666) = TRUNC ( 999999.99999999) = 999999
切り詰めの前にROUND関数を使用した場合は、式が以下のように評価されます。
TRUNC (ROUND (QTY/15, .99999999999999999999999999)).

戻り値

数値。
いずれかの引数がNULLである場合は、NULL。
戻り値が15桁を超える精度を持つ10進値である場合は、高精度を有効にして、最大38桁までの10進精度を使用可能にできます。

以下の式は、Priceポート内の値の切り詰めを行います。
TRUNC( PRICE, 3 )
PRICE
RETURN VALUE
12.9995
12.999
-18.8652  
-18.865
56.9563
56.956
15.9928
15.992
NULL
NULL
TRUNC( PRICE, -1 )
PRICE
RETURN VALUE
12.99
10.0
-187.86  
-180.0
56.95
50.0
1235.99
1230.0
NULL
NULL
TRUNC( PRICE )
PRICE
RETURN VALUE
12.99
12.0
-18.99  
-18.0
56.95
56.0
15.99
15.0
NULL
NULL