float は限られた精度を許容します - double はより多く、通常は 15 桁です。
警告: 浮動小数点は、たとえば、お金を扱うときに問題があります。例:.10
データの IEEE-754 浮動小数点内部表現では正確に表現できません。一般的な回避策は、オラクルに BCD 演算を使用させて浮動小数点の問題を回避し、最終結果を double に読み込むことです。
FLT_DIG
This is the number of decimal digits of precision for the float data type. Technically, if p and b are the precision and base (respectively) for the representation, then the decimal precision q is the maximum number of decimal digits such that any floating point number with q base 10 digits can be rounded to a floating point number with p base b digits and back again, without change to the q decimal digits.
FLT_DIG は通常、最小精度で 6 桁、DBL_DIG: 15 です。
C コードで多くの計算と比較を行うことを避けている限り、私が言及した問題やその他の問題に対処する方法を知らない限り、金銭的な最終結果を得るのは簡単です。
EXEC SQL BEGIN DECLARE SECTION;
static double o_start_x;
EXEC SQL END DECLARE SECTION;
EXEC SQL SELECT start_x
FROM my_table
INTO :o_start_x;
この数が巨大な場合は、文字列を使用する必要がある場合があります。NUMBER の制限は 32 桁の精度であり、一般的な C データ型の精度の制限を超えています。Pro*C は Bignum データ型をサポートしていません。