プライマリ・コンテンツに移動
Oracle® Big Data Discovery Cloud Service EQLリファレンス

E65371-04
目次へ
目次
索引へ移動
索引

前
次
機械翻訳について

double型の精度の処理

このトピックでは、EQL結果の倍精度のシリアライズにおける精度の制限に関する情報を提供します。

浮動小数点数の性質は、内部倍精度からその倍精度の文字列表現に変換するときに、EQLで完全な精度を保証できないということです。 具体的には、数値が15桁を超える場合、double-to-string-to-doubleラウンドトリップを実行すると精度が失われ、開始した値と異なる数値が表示されます。 (合計桁数。小数点以下の数字である必要はありません。)

基本的に、小数点以下の桁数は様々な実装ファクタに依存しますが、実際に変更される可能性はほとんどありません。 (技術的な): EQLでIEEE 754 64ビット浮動小数点数が使用されている場合、その制限は同じ値です。)

したがって、StudioなどのクライアントがEQL問合せ結果からdoubleを取得し、絞込みフィルタでそのdoubleを使用して新規問合せを送信した場合、数値自体が15桁を超える10進数を必要とするときには、元の値を取得する必要はありません。 この動作が必要な場合は、絞込みフィルタをフォームのEQLフィルタと置換することを検討してください:
x BETWEEN (dblVal - epsilon) AND (dblVal + epsilon)
ここで、dblValは前の問合せの値、「イプシロン」はレコードが一致する必要がある許容差を示す小さい正数です。

同様に、クライアントが範囲フィルタのエンド・ポイントとしてEQL結果からダブルを使用する場合、クライアントはある程度の許容量を使用して範囲を調整する必要があります。