ヘッダーをスキップ
Oracle® C++ Call Interfaceプログラマーズ・ガイド,
11g リリース2 (11.2)
B72452-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

Numberクラス

Numberクラスは、精度に制限があり符号付きで10を基数とする数値を処理します。Numberは、10進数で38桁の精度が保証されます。次に示す範囲内の正の数値はすべて、完全な38桁の精度で表現できます。

10^-130

および

9.99999999999999999999999999999999999999*10^125 

表現可能な負の数値の範囲は、正の数値と対称的になります。

数値0(ゼロ)を正確に表現できます。また、Oracle NUMBERでは、正の無限大と負の無限大を表現できます。一般的に、これらの数値表現はオーバーフローを示すために使用されます。

内部格納タイプは不透明でプライベートです。Numberインスタンスの作成時に、位取りは保持されません。

Numberは、NaNの概念をサポートしていません。また、IEEE-754-85に準拠していません。Numberは、正の無限大と負の無限大をサポートしていません。

Numberクラスからのオブジェクトは、クライアント側の数値計算でスタンドアロン・クラス・オブジェクトとして使用できます。データベースからフェッチする場合やデータベースに設定する場合にも使用できます。

例13-10 Numberオブジェクトを取り出して使用する方法

この例では、データベースからのNumber列値の取出し、Numberオブジェクトを使用するバインド、およびスタンドアロンNumberオブジェクトを使用する計算が示されています。

/* Create a connection */
Environment *env = Environment::createEnvironment(Environment::DEFAULT);
Connection *conn = Connection(user, passwd, db);

/* Create a statement and associate a select clause with it */
string sqlStmt = "SELECT department_id FROM DEPARTMENTS";
Statement *stmt = conn->createStatement(sqlStmt);

/* Run the statement to get a result set */
ResultSet *rset = stmt->executeQuery();
while(rset->next())
{
   Number deptId = rset->getNumber(1);
   /* Display the department id with the format string 9,999 */
   cout << "Department Id" << deptId.toText(env, "9,999");

   /* Use the number obtained as a bind value in the following query */
   stmt->setSQL("SELECT * FROM EMPLOYEES WHERE department_id = :x");
   stmt->setNumber(1, deptId);
   ResultSet *rset2 = stmt->executeQuery();
   .
   .
}
/* Using a Number object as a standalone and the operations on them */

/* Create a number to a double value */
double value = 2345.123;
Number nu1 (value);

/* Some common Number methods */
Number abs = nu1.abs();    /* absolute value */
Number sqrt = nu1.squareroot();    /* square root */
Environment *env = Environment::createEnvironment();

//create a null year-month interval
IntervalYM ym
if(ym.isNull())
   cout << "\n ym is null";

//assign a non null value to ym
IntervalYM anotherYM(env, "10-30");
ym = anotherYM;

//now all operations are valid on ym
int yr = ym.getYear();

表13-30 Numberメソッドの概要

メソッド 概要

Number()


Numberクラスのコンストラクタです。

abs()


数値の絶対値を戻します。

arcCos()


数値のアーク・コサインを戻します。

arcSin()


数値のアーク・サインを戻します。

arcTan()


数値のアーク・タンジェントを戻します。

arcTan2()


入力数値yとこの数値xのアーク・タンジェントを戻します。

ceil()


数値の値以上で、最小の整数値を戻します。

cos()


数値のコサインを戻します。

exp()


数値の自然指数を戻します。

floor()


数値の値以下で、最大の整数値を戻します。

fromBytes()


Bytesオブジェクトから導出したNumberを戻します。

fromText()


指定された数値文字列、書式文字列およびNLSパラメータからNumberを戻します。

hypCos()


数値の双曲線コサインを戻します。

hypSin()


数値の双曲線サインを戻します。

hypTan()


数値の双曲線タンジェントを戻します。

intPower()


指定された整数値で累乗した数値を戻します。

isNull()


NumberNULLかどうかをチェックします。

ln()


数値の自然対数を戻します。

log()


指定された底に対する数値の対数を戻します。

operator++()


numberを増やします。

--


numberを減らします。

operator*()


2つのNumber値の積を戻します。

operator/()


2つのNumber値の商を戻します。

operator%()


2つのNumber値のモジュロを戻します。

operator+()


2つのNumber値の和を戻します。

operator-()


Numberの負の値を戻します。

operator-()


2つのNumber値の差を戻します。

operator<()


数値が別の数値未満かどうかをチェックします。

operator<=()


数値が別の数値以下かどうかをチェックします。

operator>()


数値が別の数値を超えているかどうかをチェックします。

operator>=()


数値が別の数値以上かどうかをチェックします。

operator=()


ある数値を別の数値に割り当てます。

operator==()


2つの数値が等しいかどうかをチェックします。

operator!=()


2つの数値が等しくないかどうかをチェックします。

operator*=()


乗算による割当てを行います。

operator/=()


除算による割当てを行います。

operator%=()


余りによる割当てを行います。

operator+=()


加算による割当てを行います。

-=


減算による割当てを行います。

operator char()


Numberをシステム固有のchar型に変換して戻します。

operator signed char()


Numberをシステム固有のsigned char型に変換して戻します。

operator double()


Numberをシステム固有のdouble型に変換して戻します。

operator float()


Numberをシステム固有のfloat型に変換して戻します。

operator int()


Numberをシステム固有のint型に変換して戻します。

operator long()


Numberをシステム固有のlong型に変換して戻します。

operator long double()


Numberをシステム固有のlong double型に変換して戻します。

operator short()


Numberをシステム固有のshort int型に変換して戻します。

operator unsigned char()


Numberを符号なしでシステム固有のunsigned char型に変換して戻します。

operator unsigned int()


Numberを符号なしでシステム固有のunsigned int型に変換して戻します。

operator unsigned long()


Numberを符号なしでシステム固有のunsigned long型に変換して戻します。

operator unsigned short()


Numberを符号なしでシステム固有のunsigned short int型に変換して戻します。

power()


Numberの累乗(「指定された別の数値」乗)を戻します。

prec()


Numberを指定の桁の精度に丸めて戻します。

round()


Numberを指定の小数点以下の桁に丸めて戻します。負数も可能です。

setNull()


NumberNULLに設定します。

shift()


指定された値* 10^nnは正または負)と等しいNumberを戻します。

sign()


指定された値の符号を戻します。指定された値<0の場合は-1、指定された値==0の場合は0(ゼロ)、指定された値>0の場合は1を戻します。

sin()


数値のサインを戻します。

squareroot()


数値の平方根を戻します。

tan()


数値のタンジェントを戻します。

toBytes()


Numberを示すBytesオブジェクトを戻します。

toText()


数値を、書式とNLSパラメータに基づいて書式化した文字列で戻します。

trunc()


Numberを小数点以下n桁に切り捨てた値を戻します。負数も可能です。



Number()

Numberクラスのコンストラクタです。

構文 説明
Number();
デフォルトのコンストラクタです。
Number(
   const Number &srcNum);
Numberのコピーを作成します。
Number(
   long double &val);
システム固有のlong double型をNumberに変換します。このNumberは、プラットフォーム固有の定数LDBL_DIGの精度を使用して作成されます。
Number(
   double val);
システム固有のdouble型をNumberに変換します。このNumberは、プラットフォーム固有の定数DBL_DIGの精度を使用して作成されます。
Number(
   float val);
システム固有のfloat型をNumberに変換します。このNumberは、プラットフォーム固有の定数FLT_DIGの精度を使用して作成されます。
Number(
   long val);
システム固有のlong型をNumberに変換します。
Number(
   int val);
システム固有のint型をNumberに変換します。
Number(
   shot val);
システム固有のshort型をNumberに変換します。
Number(
   char val);
システム固有のchar型をNumberに変換します。
Number(
   signed char val);
システム固有のsigned char型をNumberに変換します。
Number(
   unsigned long val);
システム固有のunsigned long型をNumberに変換します。
Number(
   unsigned int val);
システム固有のunsigned int型をNumberに変換します。
Number(
   unsigned short val);
システム固有のunsigned short型をNumberに変換します。
Number(
   unsigned char val);
システム固有の符号なし文字配列をNumberに変換します。

パラメータ 説明
srcNum
新しいNumberオブジェクトにコピーされるコピー元のNumberを指定します。
val
Numberオブジェクトに割り当てられる値を指定します。


abs()

このメソッドは、Numberオブジェクトの絶対値を戻します。

構文

const Number abs() const;

arcCos()

このメソッドは、Numberオブジェクトのアーク・コサインを戻します。

構文

const Number arcCos() const;

arcSin()

このメソッドは、Numberオブジェクトのアーク・サインを戻します。

構文

const Number arcSin() const;

arcTan()

このメソッドは、Numberオブジェクトのアーク・タンジェントを戻します。

構文

const Number arcTan() const;

arcTan2()

このメソッドは、パラメータを指定してNumberオブジェクトのアーク・タンジェントを戻します。戻される値はatan2 (val, x)で、valは指定されたパラメータ、xは現行のNumberオブジェクトです。

構文

const Number arcTan2(
   const Number &val) const;
パラメータ 説明
val
arcTangent関数のatan2(val,x)に数値パラメータvalを指定します。


ceil()

このメソッドは、Numberオブジェクト以上で、最も小さい整数を戻します。

構文

const Number ceil() const;

cos()

このメソッドは、Numberオブジェクトのコサインを戻します。

構文

const Number cos() const;

exp()

このメソッドは、Numberオブジェクトの自然指数を戻します。

構文

const Number exp() const;

floor()

このメソッドは、Numberオブジェクト以下で、最も大きい整数を戻します。

構文

const Number floor() const;

fromBytes()

このメソッドは、指定されたバイト文字列で表現したNumberオブジェクトを戻します。

構文

void fromBytes(
   const Bytes &str);
パラメータ 説明
str
バイト文字列を指定します。


fromText()

NumberオブジェクトをstringまたはUStringによって表される値に設定します。

値はfmtおよびnlsParamパラメータに基づいて解析されます。nlsParamが渡されない場合は、envpパラメータのグローバリゼーション・サポート設定が使用されます。


関連項目

TO_NUMBERの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

構文 説明
void fromText(
   const Environment *envp,
   const string &number,
   const string &fmt,
   const string &nlsParam = "");
Numberオブジェクトをstringによって表される値に設定します。
void fromText(
   const Environment *envp,
   const UString &number,
   const UString &fmt,
   const UString &nlsParam);
NumberオブジェクトをUStringによって表される値に設定します。

パラメータ 説明
envp
OCCI環境を指定します。
number
Numberオブジェクトに変換する数値文字列を指定します。
fmt
書式文字列を指定します。
nlsParam
NLSパラメータ文字列を指定します。nlsParamが指定されている場合は、この指定によって、変換に使用されるNLSパラメータが決まります。nlsParamが指定されていない場合は、NLSパラメータがenvpから選択されます。


hypCos()

このメソッドは、Numberオブジェクトの双曲線コサインを戻します。

構文

const Number hypCos() const;

hypSin()

このメソッドは、Numberオブジェクトの双曲線サインを戻します。

構文

const Number hypSin() const;

hypTan()

このメソッドは、Numberオブジェクトの双曲線タンジェントを戻します。

構文

const Number hypTan() const;

intPower()

このメソッドは、指定された値で累乗した数値オブジェクトの値を持つNumberを戻します。

構文

const Number intPower(
   int val) const;
パラメータ 説明
val
数値を累乗する数を指定します。


isNull()

このメソッドは、NumberオブジェクトがNULLかどうかをテストします。NumberオブジェクトがNULLの場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isNull() const;

ln()

このメソッドは、Numberオブジェクトの自然対数を戻します。

構文

const Number ln() const;

log()

このメソッドは、指定されたパラメータを底としてNumberオブジェクトの対数を戻します。

構文

const Number log(
   const Number &val) const;
パラメータ 説明
val
対数計算に使用する底を指定します。


operator++()

単項のoperator++()です。これは後置演算子です。

構文 説明
Number& operator++();
このメソッドは、1つ分増加したNumberオブジェクトを戻します。
const Number operator++(
   int incr);
このメソッドは、指定された整数分増加したNumberオブジェクトを戻します。

パラメータ 説明
incr
Numberオブジェクトの増分の数値を指定します。


operator--()

単項のoperator--()です。これは前置演算子です。

構文 説明
Number& operator--();
このメソッドは、1つ分減少したNumberオブジェクトを戻します。
const Number operator--(
   int decr);
このメソッドは、指定された整数分減少したNumberオブジェクトを戻します。

パラメータ 説明
decr
Numberオブジェクトの減分の数値を指定します。


operator*()

このメソッドは、指定されたパラメータの積を戻します。

構文

Number operator*(
   const Number &first,
   const Number &second);
パラメータ 説明
first
最初の被乗数を指定します。
second
第2の被乗数を指定します。


operator/()

このメソッドは、指定された2つのパラメータの商を戻します。

構文

Number operator/(
   const Number &dividend,
   const Number &divisor);
パラメータ 説明
dividend
被除数の値を指定します。
divisor
除数の値を指定します。


operator%()

このメソッドは、指定されたパラメータを除算した剰余を戻します。

構文

Number operator%(
   const Number &dividend,
   const Number &divider);
パラメータ 説明
dividend
被除数の値を指定します。
divizor
除数の値を指定します。


operator+()

このメソッドは、指定されたパラメータの合計を戻します。

構文

Number operator+(
   const Number &first,
   const Number &second);
パラメータ 説明
first
加算する最初の数値を指定します。
second
加算する第2の数値を指定します。


operator-()

単項のoperator-()です。このメソッドは、Numberオブジェクトの負の値を戻します。

構文

const Number operator-();

operator-()

このメソッドは、指定されたパラメータの差異を戻します。

構文

Number operator-(
   const Number &subtrahend,
   const Number &subtractor);
パラメータ 説明
subtrahend
減数の値を指定します。
subtractor
減算する数値を指定します。


operator<()

このメソッドは、指定された第1パラメータが第2パラメータ未満かどうかをチェックします。第1パラメータが第2パラメータ未満の場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかのパラメータが無限大の場合はFALSEを戻します。

構文

bool operator<(
   const Number &first,
   const Number &second);
パラメータ 説明
first
比較対象の最初の数値を指定します。
second
比較対象の第2の数値を指定します。


operator<=()

このメソッドは、指定された第1パラメータが第2パラメータ以下であるかどうかをチェックします。第1パラメータが第2パラメータ以下の場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかのパラメータが無限大の場合はFALSEを戻します。

構文

bool operator<=(
   const Number &first,
   const Number &second);
パラメータ 説明
first
比較対象の最初の数値を指定します。
second
比較対象の第2の数値を指定します。


operator>()

このメソッドは、指定された第1パラメータが第2パラメータを超えているかどうかをチェックします。第1パラメータが第2パラメータを超えている場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかのパラメータが無限大の場合はFALSEを戻します。

構文

bool operator>(
   const Number &first,
   const Number &second);
パラメータ 説明
first
比較対象の最初の数値を指定します。
second
比較対象の第2の数値を指定します。


operator>=()

このメソッドは、指定された第1パラメータが第2パラメータ以上であるかどうかをチェックします。第1パラメータが第2パラメータ以上の場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかのパラメータが無限大の場合はFALSEを戻します。

構文

bool operator>=(
   const Number &first,
   const Number &second);
パラメータ 説明
first
比較対象の最初の数値を指定します。
second
比較対象の第2の数値を指定します。


operator==()

このメソッドは、指定された2つのパラメータが等しいかどうかをチェックします。2つのパラメータが等しい場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかのパラメータが正の無限大または負の無限大の場合はFALSEを戻します。

構文

bool operator==(
   const Number &first,
   const Number &second);
パラメータ 説明
first
比較対象の最初の数値を指定します。
second
比較対象の第2の数値を指定します。


operator!=()

このメソッドは、指定された第1パラメータと第2パラメータが等しくないかどうかをチェックします。2つのパラメータが等しくない場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool operator!=(
   const Number &first,
   const Number &second);
パラメータ 説明
first
比較対象の最初の数値を指定します。
second
比較対象の第2の数値を指定します。


operator=()

このメソッドは、指定されたパラメータの値をNumberオブジェクトに割り当てます。

構文

Number& operator=(
   const Number &num);
パラメータ 説明
num
Number型のパラメータを指定します。


operator*=()

このメソッドは、Numberオブジェクトを指定されたパラメータで乗算し、その積をNumberオブジェクトに割り当てます。

構文

Number& operator*=(
   const Number &num);
パラメータ 説明
num
Number型のパラメータを指定します。


operator/=()

このメソッドは、Numberオブジェクトを指定されたパラメータで除算し、その商をNumberオブジェクトに割り当てます。

構文

Number& operator/=(
   const Number &num);
パラメータ 説明
num
Number型のパラメータを指定します。


operator%=()

このメソッドは、Numberオブジェクトを指定されたパラメータで除算し、剰余をNumberオブジェクトに割り当てます。

構文

Number& operator%=(
   const Number &num);
パラメータ 説明
num
Number型のパラメータを指定します。


operator+=()

このメソッドは、Numberオブジェクトと指定されたパラメータを加算し、その和をNumberオブジェクトに割り当てます。

構文

Number& operator+=(
   const Number &num);
パラメータ 説明
num
Number型のパラメータを指定します。


operator-=()

このメソッドは、Numberオブジェクトから指定されたパラメータを減算し、その差をNumberオブジェクトに割り当てます。

構文

Number& operator-=(
   const Number &num);
パラメータ 説明
num
Number型のパラメータを指定します。


operator char()

このメソッドは、Numberオブジェクトの値をシステム固有のchar型に変換して戻します。

構文

operator char() const;

operator signed char()

このメソッドは、Numberオブジェクトの値をシステム固有のsigned char型に変換して戻します。

構文

operator signed char() const;

operator double()

このメソッドは、Numberオブジェクトの値をシステム固有のdouble型に変換して戻します。

構文

operator double() const;

operator float()

このメソッドは、Numberオブジェクトの値をシステム固有のfloat型に変換して戻します。

構文

operator float() const;

operator int()

このメソッドは、Numberオブジェクトの値をシステム固有のint型に変換して戻します。

構文

operator int() const;

operator long()

このメソッドは、Numberオブジェクトの値をシステム固有のlong型に変換して戻します。

構文

operator long() const;

operator long double()

このメソッドは、Numberオブジェクトの値をシステム固有のlong double型に変換して戻します。

構文

operator long double() const;

operator short()

このメソッドは、Numberオブジェクトの値をシステム固有のshort int型に変換して戻します。

構文

operator short() const;

operator unsigned char()

このメソッドは、Numberオブジェクトの値をシステム固有のunsigned char型に変換して戻します。

構文

operator unsigned char() const;

operator unsigned int()

このメソッドは、Numberオブジェクトの値をシステム固有のunsigned int型に変換して戻します。

構文

operator unsigned int() const;

operator unsigned long()

このメソッドは、Numberオブジェクトの値をシステム固有のunsigned long型に変換して戻します。

構文

operator unsigned long() const;

operator unsigned short()

このメソッドは、Numberオブジェクトの値をシステム固有のunsigned short型に変換して戻します。

構文

operator unsigned short() const;

power()

このメソッドは、指定されたパラメータの値で累乗したNumberオブジェクトの値を戻します。

構文

const Number power(
   const Number &val) const;
パラメータ 説明
val
この数値で累乗する値を指定します。


prec()

このメソッドは、パラメータに指定された桁数の精度に丸めたNumberオブジェクトの値を戻します。

構文

const Number prec(
   int digits) const;
パラメータ 説明
digits
精度の桁数を指定します。


round()

このメソッドは、パラメータに指定された小数点以下の桁数に丸めたNumberオブジェクトの値を戻します。

構文

const Number round(
   int decPlace) const;
パラメータ 説明
decPlace
小数点の右側の桁数を指定します。


setNull()

このメソッドは、Numberオブジェクトの値をNULLに設定します。

構文

void setNull();

shift()

このメソッドは、指定されたパラメータに従って10の累乗倍したNumberオブジェクトを戻します。

構文

const Number shift(
   int val) const;
パラメータ 説明
val
整数値を指定します。


sign()

このメソッドは、Numberオブジェクトの値の符号を戻します。Numberオブジェクトが負の場合は、戻される整数パラメータを使用してDateオブジェクトを作成します。Numberオブジェクトが0 (ゼロ)の場合は、戻される整数パラメータを使用してDateオブジェクトを作成します。Numberオブジェクトが正の場合は、1を戻します。

構文

const int sign() const;

sin()

このメソッドは、Numberオブジェクトのサイン値を戻します。

構文

const Number sin() const;

squareroot()

このメソッドは、Numberオブジェクトの平方根を戻します。

構文

const Number squareroot() const;

tan()

このメソッドは、Numberオブジェクトのタンジェント値を戻します。

構文

const Number tan() const;

toBytes()

このメソッドは、NumberオブジェクトをBytesオブジェクトに変換します。バイト表現は、長さを除いた書式を前提にしています。つまり、Byte.length()メソッドでは有効なバイト長が指定され、0(ゼロ)番目のバイトは指数バイトです。

構文

Bytes toBytes() const;

toText()

指定されたパラメータに基づいて、Numberオブジェクトを書式化したstringまたはUStringに変換します。


関連項目

TO_NUMBERの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

構文 説明
string toText(
   const Environment *envp,
   const string &fmt,
   const string &nlsParam = "") const;
指定されたパラメータに基づいて、Numberオブジェクトを書式化したstringに変換します。
UString toText(
   const Environment *envp,
   const UString &fmt,
   const UString &nlsParam) const;
指定されたパラメータに基づいて、NumberオブジェクトをUStringに変換します。

パラメータ 説明
envp
OCCI環境を指定します。
fmt
書式文字列を指定します。
nlsParam
NLSパラメータ文字列を指定します。nlsParamが指定されている場合は、この指定によって、変換に使用されるNLSパラメータが決まります。nlsParamが指定されていない場合は、NLSパラメータがenvpから選択されます。


trunc()

このメソッドは、指定されたパラメータに従って小数点以下の桁数を切り捨てたNumberオブジェクトを戻します。

構文

const Number trunc(
   int decPlace) const;
パラメータ 説明
decPlace
小数点の右側の値の切り捨てる桁の位置を指定します。