16.20 - 例: 丸め - Teradata Vantage NewSQL Engine

Teradata Vantage™ データ タイプおよびリテラル

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1143-162K-JPN

次のSELECT文は、48と48を返します。

SELECT 47.5(FORMAT 'zzzz'), 48.5(FORMAT('zzzz')) ;

FORMAT句は、数値の四捨五入を行なうことができます。例えば、次の文を考えてみます。

SELECT 1.3451 (FORMAT 'zz.z');

FORMAT句が1.3451に働き、1.3を返します。

SELECT 13451 / 10000.000

1.345が返されます。

SELECT 13451 / 10000.000 (FORMAT 'zz.z');

算術式が最初に評価され(1.345が生じる)、次にFORMAT句が適用されて、1.3が返されます。

SELECT 13451 / 10000.00 (FORMAT 'zz.z');

「四捨五入」は2回行なわれることに注意する必要があります。最初は式の評価時に1.35へ、次にFORMAT文の適用の結果として1.4への四捨五入が行なわれます。

このような二重の「四捨五入」を避けるために、算術式の精度を、FORMAT句の精度より小数で2桁分多くとっておいてください。