Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

EXP

数値の指数値 (自然対数の逆関数) を返すスカラ数値関数です。

Synopsis

{fn EXP(float-expression)}

引数

float-expression FLOAT 型の式である対数の指数値。

概要

EXP は指数関数 en であり、e は定数 2.718281828 です。そのため、e の値を返すために、{fn EXP(1)} と指定できます。EXP は自然対数関数 LOG の逆関数です。

EXP は、有効桁数が 36 で小数桁数が 18 のデータ型 FLOAT の値を返します。NULL 値を渡すと EXP は NULL を返します。

EXP は ({ } 括弧構文と共に) ODBC スカラ関数としてのみ使用できます。

以下の例は、定数 e を返します。

SELECT {fn EXP(1)} AS e_constant

これは、2.718281828... を返します。

以下の埋め込み SQL の例は、整数 0 から 10 までの指数値を返します。

   SET a=0
   WHILE a<11 {
   &sql(SELECT {fn EXP(:a)} INTO :b)
   IF SQLCODE'=0 {
     WRITE !,"Error code ",SQLCODE
     QUIT }
   ELSE {
     WRITE !,"Exponential of ",a," = ",b
     SET a=a+1 }
   }

以下の埋め込み SQL の例は、EXPLOG の逆関数であることを示しています。

  SET x=7
  &sql(SELECT {fn EXP(:x)} AS Exp,
              {fn LOG(:x)} AS Log,
              {fn EXP({fn LOG(:x)})} AS ExpOfLog
       INTO :a,:b,:c)
  IF SQLCODE'=0 {
     WRITE !,"Error code ",SQLCODE
     QUIT }
   ELSE {
     WRITE "Exponential of ",x," = ",a,!
     WRITE "Natural log of ",x," = ",b,!
     WRITE "Exp of Log of  ",x," = ",c
     }

3 番目の関数呼び出しで、入力された数値と計算された返り値との間に小さな差異があることに注意してください。以下の例は、この計算上の誤差を処理する方法を示します。

以下の埋め込み SQL の例は、整数 1 から 10 までに対する LOG 関数と EXP 関数の関係を示します。

   SET a=1
   WHILE a<11 {
   &sql(SELECT {fn LOG(:a)} INTO :b)
   IF SQLCODE'=0 {
     WRITE !,"Error code ",SQLCODE
     QUIT }
   ELSE {
     WRITE !,"Logarithm of ",a," = ",b }
   &sql(SELECT ROUND({fn EXP(:b)},12) INTO :c)
   IF SQLCODE'=0 {
     WRITE !,"Error code ",SQLCODE }
   ELSE {
     WRITE !,"Exponential of log ",b," = ",c 
   SET a=a+1 }
   }

ここでは、システムの計算制限によって生じる非常に小さな差異を修正する ROUND 関数が必要なことに注意してください。上記の例では、この目的で ROUND がとりあえず小数点以下 12 桁に設定されています。

関連項目

FeedbackOpens in a new tab