bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo C リファレンス

 Previous Next Contents View as PDF  

decimal(3c)

名前

decimal()−十進数変換および算術ルーチン

形式

#include “decimal.h”  
int
lddecimal(cp, len, np) /* 十進数のロード */
char*cp; /* 入力 : 圧縮した形式の位置 */
int
len; /* 入力 : 圧縮した形式の長さ */
dec_t*np; /* 出力 : dec_t 形式の位置 */
void
stdecimal(np, cp, len) /* 十進数の格納 */
dec_t*np; /* 入力 : dec_t 形式の位置 */
char*cp; /* 出力 : 圧縮した形式の位置 */
int len; /* 入力 : 圧縮した形式の長さ */
int
deccmp(n1, n2) /* 2 つの十進数の比較 */
dec_t*n1; /* 入力 : 比較する数 */
dec_t*n2; /* 入力 : 比較する数 */
int
dectoasc(np, cp, len, right) /* dec_t をアスキーに変換 */
dec_t*np; /* 入力 : 変換する数 */
char*cp; /* 出力 : 変換後の数 */
int len; /* 入力 : 出力文字列の長さ */
int right; /* 入力 : 小数点以下の数 */
int
deccvasc(cp, len, np) /* アスキーを dec_t に変換 */
char*cp; /* 入力 : 変換する数 */
int len; /* 入力 : 変換する数の最大長 */
dec_t*np; /* 出力 : 変換後の数 */
int
dectoint(np, ip) /* int を dec_t に変換 */
dec_t*np; /* 入力 : 変換する数 */
int *ip; /* 出力 : 変換後の数 */
int
deccvint(in, np) /* dec_t を int に変換 */
int in; /* 入力 : 変換する数 */
dec_t*np; /* 出力 : 変換後の数 */
int
dectolong(np, lngp) /* dec_t を long に変換 */
dec_t*np; /* 入力 : 変換する数 */
long*lngp; /* 出力 : 変換後の数 */
int
deccvlong(lng, np) /* long を dec_t に変換 */
longlng; /* 入力 : 変換する数 */
dec_t*np; /* 出力 : 変換後の数 */
int
dectodbl(np, dblp) /* dec_t を double に変換 */
dec_t*np; /* 入力 : 変換する数 */
double *dblp; /* 出力 : 変換後の数 */
int
deccvdbl(dbl, np) /* double を dec_t に変換 */
double *dbl; /* 入力 : 変換する数 */
dec_t*np; /* 出力 : 変換後の数 */
int
dectoflt(np, fltp) /* dec_t を float に変換 */
dec_t*np; /* 入力 : 変換する数 */
float*fltp; /* 出力 : 変換後の数 */
int
deccvflt(flt, np) /* float を dec_t に変換 */
double *flt; /* 入力 : 変換する数 */
dec_t*np; /* 出力 : 変換後の数 */
int
decadd(*n1, *n2, *n3) /* 2 つの十進数の加算を行う */
dec_t*n1; /* 入力 : 加数 */
dec_t*n2; /* 入力 : 加数 */
dec_t*n3; /* 出力 : 合計 */
int
decsub(*n1, *n2, *n3) /* 2 つの十進数の減算を行う */
dec_t*n1; /* 入力 : 被減数 */
dec_t*n2; /* 入力 : 減数 */
dec_t*n3; /* 出力 : 差 */
int
decmul(*n1, *n2, *n3) /* 2 つの十進数の乗算を行う */
dec_t*n1; /* 入力 : 被乗数 */
dec_t*n2; /* 入力 : 被乗数 */
dec_t*n3; /* 出力 : 積 */
int
decdiv(*n1, *n2, *n3) /* 2 つの十進数の除算を行う */
dec_t*n1; /* 入力 : 被除数 */
dec_t*n2; /* 入力 : 除数 */
dec_t*n3; /* 出力 : 商 */

機能説明

これらの関数を使用すると BEA Tuxedo ATMI システムにおいてパック十進データを格納、変換、および操作することができます。BEA Tuxedo ATMI システムにおいて表現される十進数のデータ型の形式は、CICS でのその表現とは異なることに注意してください。

マルチスレッドのアプリケーションのスレッドは、TPINVALIDCONTEXT を含むどんなコンテキスト状態でも、10 進数の変換関数を呼び出すことができます。

ネイティブの十進数表現

十進数は、BEA Tuxedo ATMI システム上では dec_t 構造体を使用して表現されます。この構造体の定義を次に示します。

#define DECSIZE                 16
struct decimal {
short dec_exp; /* 指数底 100 */
short dec_pos; /* 符号 :正 (1)、負 (0)、NULL (-1) */
short dec_ndgts; /* 有効桁数 */
char dec_dgts[DECSIZE]; /* 実際の桁数底 100 */
};
typedef struct decimal dec_t;

プログラマは、dec_t 構造体に直接アクセスする必要はありません。基本的なデータ構造体を理解するためにこの構造体を提示します。莫大な十進数データを格納する必要がある場合、より圧縮した形式を得るために stdecimal()lddecimal() 関数を使用します。dectoasc()dectoint()dectolong()dectodbl() および dectoflt() を使用すると、十進数から他のデータ・タイプへ変換することができます。deccvasc()deccvint()deccvlong()deccvdbl() および deccvflt() を使用すると、他のデータ・タイプから十進数のデータ・タイプに変換することができます。deccmp() は、2 つの十進数を比較する関数です。1 番目の十進数が 2 番目の十進数より小さい場合、-1 を返します。 2 つの十進数が等しい場合、0 を返します。1 番目の十進数が 2 番目の十進数より大きい場合 1 を返します。どちらかの引数が無効である場合、-1 以外の負の値を返します。decadd()decsub()decmul() および decdiv() は、十進数の算術演算を行います。

戻り値

特に指定がない限り、これらの関数は、正常終了時には 0 を返し、エラー時には負の数を返します。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy