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 = env->createConnection(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();
メソッド | 概要 |
---|---|
|
|
|
数値の絶対値を戻します。 |
|
数値のアーク・コサインを戻します。 |
|
数値のアーク・サインを戻します。 |
|
数値のアーク・タンジェントを戻します。 |
|
入力数値 |
|
数値の値以上で、最小の整数値を戻します。 |
|
数値のコサインを戻します。 |
|
数値の自然指数を戻します。 |
|
数値の値以下で、最大の整数値を戻します。 |
|
|
|
指定された数値文字列、書式文字列およびNLSパラメータからNumberを戻します。 |
|
数値の双曲線コサインを戻します。 |
|
数値の双曲線サインを戻します。 |
|
数値の双曲線タンジェントを戻します。 |
|
指定された整数値で累乗した数値を戻します。 |
|
|
|
数値の自然対数を戻します。 |
|
指定された底に対する数値の対数を戻します。 |
|
|
|
|
|
2つの |
|
2つの |
|
2つの |
|
2つの |
|
|
|
2つの |
|
数値が別の数値未満かどうかをチェックします。 |
|
数値が別の数値以下かどうかをチェックします。 |
|
数値が別の数値を超えているかどうかをチェックします。 |
|
数値が別の数値以上かどうかをチェックします。 |
|
ある数値を別の数値に割り当てます。 |
|
2つの数値が等しいかどうかをチェックします。 |
|
2つの数値が等しくないかどうかをチェックします。 |
|
乗算による割当てを行います。 |
|
除算による割当てを行います。 |
|
余りによる割当てを行います。 |
|
加算による割当てを行います。 |
|
減算による割当てを行います。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
指定された値 |
|
指定された値の符号を戻します。指定された値<0の場合は-1、指定された値==0の場合は0(ゼロ)、指定された値>0の場合は1を戻します。 |
|
数値のサインを戻します。 |
|
数値の平方根を戻します。 |
|
数値のタンジェントを戻します。 |
|
|
|
数値を、書式とNLSパラメータに基づいて書式化した文字列で戻します。 |
|
|
Number
クラスのコンストラクタです。
パラメータ | 説明 |
---|---|
srcNum |
新しいNumber オブジェクトにコピーされるコピー元のNumber を指定します。 |
val |
Number オブジェクトに割り当てられる値を指定します。 |
このメソッドは、Number
オブジェクトの絶対値を戻します。
構文
const Number abs() const;
このメソッドは、Number
オブジェクトのアーク・コサインを戻します。
構文
const Number arcCos() const;
このメソッドは、Number
オブジェクトのアーク・サインを戻します。
構文
const Number arcSin() const;
このメソッドは、Number
オブジェクトのアーク・タンジェントを戻します。
構文
const Number arcTan() const;
このメソッドは、パラメータを指定してNumber
オブジェクトのアーク・タンジェントを戻します。戻される値はatan2 (val, x)
で、val
は指定されたパラメータ、x
は現行のNumberオブジェクトです。
構文
const Number arcTan2( const Number &val) const;
パラメータ | 説明 |
---|---|
val |
arcTangent関数のatan2(val,x) に数値パラメータval を指定します。 |
このメソッドは、Number
オブジェクト以上で、最も小さい整数を戻します。
構文
const Number ceil() const;
このメソッドは、Number
オブジェクトのコサインを戻します。
構文
const Number cos() const;
このメソッドは、Number
オブジェクトの自然指数を戻します。
構文
const Number exp() const;
このメソッドは、Number
オブジェクト以下で、最も大きい整数を戻します。
構文
const Number floor() const;
このメソッドは、指定されたバイト文字列で表現したNumber
オブジェクトを戻します。
構文
void fromBytes( const Bytes &str);
パラメータ | 説明 |
---|---|
str |
バイト文字列を指定します。 |
Number
オブジェクトをstring
またはUString
によって表される値に設定します。
値はfmt
およびnlsParam
パラメータに基づいて解析されます。nlsParam
が渡されない場合は、envp
パラメータのグローバリゼーション・サポート設定が使用されます。
構文 | 説明 |
---|---|
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 から選択されます。 |
このメソッドは、Number
オブジェクトの双曲線コサインを戻します。
構文
const Number hypCos() const;
このメソッドは、Number
オブジェクトの双曲線サインを戻します。
構文
const Number hypSin() const;
このメソッドは、Number
オブジェクトの双曲線タンジェントを戻します。
構文
const Number hypTan() const;
このメソッドは、指定された値で累乗した数値オブジェクトの値を持つNumber
を戻します。
構文
const Number intPower( int val) const;
パラメータ | 説明 |
---|---|
val |
数値を累乗する数を指定します。 |
このメソッドは、Number
オブジェクトがNULL
かどうかをテストします。Number
オブジェクトがNULL
の場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool isNull() const;
このメソッドは、Number
オブジェクトの自然対数を戻します。
構文
const Number ln() const;
このメソッドは、指定されたパラメータを底としてNumber
オブジェクトの対数を戻します。
構文
const Number log( const Number &val) const;
パラメータ | 説明 |
---|---|
val |
対数計算に使用する底を指定します。 |
単項のoperator++()
です。これは後置演算子です。
構文 | 説明 |
---|---|
Number& operator++(); |
このメソッドは、1 つ分増加したNumber オブジェクトを戻します。 |
const Number operator++( int incr); |
このメソッドは、指定された整数分増加したNumber オブジェクトを戻します。 |
--
()単項のoperator--()
です。これは前置演算子です。
構文 | 説明 |
---|---|
Number& operator--(); |
このメソッドは、1 つ分減少したNumber オブジェクトを戻します。 |
const Number operator--( int decr); |
このメソッドは、指定された整数分減少したNumber オブジェクトを戻します。 |
パラメータ | 説明 |
---|---|
decr |
Numberオブジェクトの減分の数値を指定します。 |
このメソッドは、指定されたパラメータの積を戻します。
構文
Number operator*( const Number &first,
const Number &second);
パラメータ | 説明 |
---|---|
first |
最初の被乗数を指定します。 |
second |
第2の被乗数を指定します。 |
このメソッドは、指定された2つのパラメータの商を戻します。
構文
Number operator/( const Number ÷nd, const Number &divisor);
パラメータ | 説明 |
---|---|
dividend |
被除数の値を指定します。 |
divisor |
除数の値を指定します。 |
このメソッドは、指定されたパラメータを除算した剰余を戻します。
構文
Number operator%( const Number ÷nd, const Number ÷r);
パラメータ | 説明 |
---|---|
dividend |
被除数の値を指定します。 |
divizor |
除数の値を指定します。 |
このメソッドは、指定されたパラメータの合計を戻します。
構文
Number operator+( const Number &first, const Number &second);
パラメータ | 説明 |
---|---|
first |
加算する最初の数値を指定します。 |
second |
加算する第2の数値を指定します。 |
単項のoperator-()
です。このメソッドは、Number
オブジェクトの負の値を戻します。
構文
const Number operator-();
このメソッドは、指定されたパラメータの差異を戻します。
構文
Number operator-( const Number &subtrahend, const Number &subtractor);
パラメータ | 説明 |
---|---|
subtrahend |
減数の値を指定します。 |
subtractor |
減算する数値を指定します。 |
このメソッドは、指定された第1パラメータが第2パラメータ未満かどうかをチェックします。第1パラメータが第2パラメータ未満の場合はTRUE
を、それ以外の場合はFALSE
を戻します。いずれかのパラメータが無限大の場合はFALSE
を戻します。
構文
bool operator<( const Number &first, const Number &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の数値を指定します。 |
second |
比較対象の第2の数値を指定します。 |
このメソッドは、指定された第1パラメータが第2パラメータ以下であるかどうかをチェックします。第1パラメータが第2パラメータ以下の場合はTRUE
を、それ以外の場合はFALSE
を戻します。いずれかのパラメータが無限大の場合はFALSE
を戻します。
構文
bool operator<=( const Number &first, const Number &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の数値を指定します。 |
second |
比較対象の第2の数値を指定します。 |
このメソッドは、指定された第1パラメータが第2パラメータを超えているかどうかをチェックします。第1パラメータが第2パラメータを超えている場合はTRUE
を、それ以外の場合はFALSE
を戻します。いずれかのパラメータが無限大の場合はFALSE
を戻します。
構文
bool operator>( const Number &first, const Number &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の数値を指定します。 |
second |
比較対象の第2の数値を指定します。 |
このメソッドは、指定された第1パラメータが第2パラメータ以上であるかどうかをチェックします。第1パラメータが第2パラメータ以上の場合はTRUE
を、それ以外の場合はFALSE
を戻します。いずれかのパラメータが無限大の場合はFALSE
を戻します。
構文
bool operator>=( const Number &first, const Number &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の数値を指定します。 |
second |
比較対象の第2の数値を指定します。 |
このメソッドは、指定された2つのパラメータが等しいかどうかをチェックします。2つのパラメータが等しい場合はTRUE
を、それ以外の場合はFALSE
を戻します。いずれかのパラメータが正の無限大または負の無限大の場合はFALSE
を戻します。
構文
bool operator==( const Number &first, const Number &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の数値を指定します。 |
second |
比較対象の第2の数値を指定します。 |
このメソッドは、指定された第1パラメータと第2パラメータが等しくないかどうかをチェックします。2つのパラメータが等しくない場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool operator!=( const Number &first, const Number &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の数値を指定します。 |
second |
比較対象の第2の数値を指定します。 |
このメソッドは、指定されたパラメータの値をNumber
オブジェクトに割り当てます。
構文
Number& operator=( const Number &num);
パラメータ | 説明 |
---|---|
num |
Number 型のパラメータを指定します。 |
このメソッドは、Number
オブジェクトを指定されたパラメータで乗算し、その積をNumber
オブジェクトに割り当てます。
構文
Number& operator*=( const Number &num);
パラメータ | 説明 |
---|---|
num |
Number 型のパラメータを指定します。 |
このメソッドは、Number
オブジェクトを指定されたパラメータで除算し、その商をNumber
オブジェクトに割り当てます。
構文
Number& operator/=( const Number &num);
パラメータ | 説明 |
---|---|
num |
Number 型のパラメータを指定します。 |
このメソッドは、Number
オブジェクトを指定されたパラメータで除算し、剰余をNumber
オブジェクトに割り当てます。
構文
Number& operator%=( const Number &num);
パラメータ | 説明 |
---|---|
num |
Number 型のパラメータを指定します。 |
このメソッドは、Numberオブジェクトと指定されたパラメータを加算し、その和をNumber
オブジェクトに割り当てます。
構文
Number& operator+=( const Number &num);
パラメータ | 説明 |
---|---|
num |
Number 型のパラメータを指定します。 |
-=
()このメソッドは、Number
オブジェクトから指定されたパラメータを減算し、その差をNumber
オブジェクトに割り当てます。
構文
Number& operator-=( const Number &num);
パラメータ | 説明 |
---|---|
num |
Number 型のパラメータを指定します。 |
このメソッドは、Numberオブジェクトの値をシステム固有のchar
型に変換して戻します。
構文
operator char() const;
このメソッドは、Numberオブジェクトの値をシステム固有のsigned char
型に変換して戻します。
構文
operator signed char() const;
このメソッドは、Number
オブジェクトの値をシステム固有のdouble
型に変換して戻します。
構文
operator double() const;
このメソッドは、Number
オブジェクトの値をシステム固有のfloat
型に変換して戻します。
構文
operator float() const;
このメソッドは、Number
オブジェクトの値をシステム固有のint
型に変換して戻します。
構文
operator int() const;
このメソッドは、Number
オブジェクトの値をシステム固有のlong
型に変換して戻します。
構文
operator long() const;
このメソッドは、Number
オブジェクトの値をシステム固有のlong double
型に変換して戻します。
構文
operator long double() const;
このメソッドは、Number
オブジェクトの値をシステム固有のshort int
型に変換して戻します。
構文
operator short() const;
このメソッドは、Number
オブジェクトの値をシステム固有のunsigned char
型に変換して戻します。
構文
operator unsigned char() const;
このメソッドは、Number
オブジェクトの値をシステム固有のunsigned int
型に変換して戻します。
構文
operator unsigned int() const;
このメソッドは、Number
オブジェクトの値をシステム固有のunsigned long
型に変換して戻します。
構文
operator unsigned long() const;
このメソッドは、Number
オブジェクトの値をシステム固有のunsigned short
型に変換して戻します。
構文
operator unsigned short() const;
このメソッドは、指定されたパラメータの値で累乗したNumber
オブジェクトの値を戻します。
構文
const Number power( const Number &val) const;
パラメータ | 説明 |
---|---|
val |
この数値で累乗する値を指定します。 |
このメソッドは、パラメータに指定された桁数の精度に丸めたNumber
オブジェクトの値を戻します。
構文
const Number prec( int digits) const;
パラメータ | 説明 |
---|---|
digits |
精度の桁数を指定します。 |
このメソッドは、パラメータに指定された小数点以下の桁数に丸めたNumber
オブジェクトの値を戻します。
構文
const Number round( int decPlace) const;
パラメータ | 説明 |
---|---|
decPlace |
小数点の右側の桁数を指定します。 |
このメソッドは、Number
オブジェクトの値をNULL
に設定します。
構文
void setNull();
このメソッドは、指定されたパラメータに従って10の累乗倍したNumber
オブジェクトを戻します。
構文
const Number shift( int val) const;
パラメータ | 説明 |
---|---|
val |
整数値を指定します。 |
このメソッドは、Number
オブジェクトの値の符号を戻します。Number
オブジェクトが負の場合は、戻される整数パラメータを使用してDate
オブジェクトを作成します。Number
オブジェクトが0
(ゼロ)の場合は、戻される整数パラメータを使用してDate
オブジェクトを作成します。Number
オブジェクトが正の場合は、1
を戻します。
構文
const int sign() const;
このメソッドは、Number
オブジェクトのサイン値を戻します。
構文
const Number sin() const;
このメソッドは、Number
オブジェクトの平方根を戻します。
構文
const Number squareroot() const;
このメソッドは、Number
オブジェクトのタンジェント値を戻します。
構文
const Number tan() const;
このメソッドは、Number
オブジェクトをBytes
オブジェクトに変換します。バイト表現は、長さを除いた書式を前提にしています。つまり、Byte.length()
メソッドでは有効なバイト長が指定され、0
(ゼロ)番目のバイトは指数バイトです。
構文
Bytes toBytes() const;
指定されたパラメータに基づいて、Number
オブジェクトを書式化したstring
またはUString
に変換します。
構文 | 説明 |
---|---|
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 から選択されます。 |
このメソッドは、指定されたパラメータに従って小数点以下の桁数を切り捨てたNumber
オブジェクトを戻します。
構文
const Number trunc( int decPlace) const;
パラメータ | 説明 |
---|---|
decPlace |
小数点の右側の値の切り捨てる桁の位置を指定します。 |