Types de données Oracle: conseils sur le choix de rapport NOMBRE BINAIRE en DOUBLE?

Je suis de la génération d'une application scientifique qui effectue beaucoup de calculs en Java et en C, et la précision est essentielle. Il n'y a pas de calculs faits à l'intérieur de la base de données Oracle (il est simplement utilisé pour le stockage des variables entre les mathématiques des calculs).

J'ai utilisé de double précision type de données pour l'ensemble de mes Java et en C les variables, qui est en grande partie basé sur la norme IEEE 754. Ainsi, les données sont écrites dans la base de données et ensuite lecture de la base de données seront toutes les deux de double précision les types de données en C ou Java.

Ce que me recommandez-vous d'utiliser pour stocker le double-precision de données dans Oracle -- NOMBRE BINAIRE ou DOUBLE?

Par exemple, disons que j'ai une variable appelée X_Java que j'écris dans la base de données de la variable X_DB comme un BINAIRE DOUBLE. Si je devais lire ces données en Java à partir de la base de données et de les stocker dans la variable X_Java2, serait X_Java correspondre exactement à X_Java2?

Comment les choses changent je stockées X_DB dans la base de données comme un NUMÉRO?

Mise à JOUR 1: Notez que ma référence en matière de "précision" est de savoir comment fermer le nombre de lecture de la base DE données est le nombre qui était disponible avant d'être écrites DANS la base de données.

D'un côté, je pense que si le nombre disponibles, avant d'être écrites DANS la base de données est basé sur la norme IEEE 754, puis le type de données utilisé pour stocker cette valeur dans la base de données doit être une correspondance exacte si ce type de données est également basé sur la norme IEEE 754.

D'autre part, depuis un 64 bits (double précision) nombre seulement avec précision peuvent stocker jusqu'à 16 ans (parfois, 17) chiffres de précision, puis de stocker un NOMBRE dans la base de données avec 38 chiffres de précision de précision de la carte à partir de et pour la double précision. Un inconvénient est que le NOMBRE de type de données ne peut stocker que les grandes (ou petites) valeurs BINAIRES DOUBLE.

Donc, mon affectation.

À partir de cet article, il semblerait que le stockage de vos variables comme le NOMBRE serait mieux si sa précision vous chercher - techrepublic.com/article/....
Hmm, quand je l'ai lu, j'ai eu à la conclusion inverse (le titre lui-même les états à utiliser la DOUBLE). Par exemple, si les données proviennent en C ou en Java (par exemple, basé sur la norme IEEE 754), alors vous n'auriez jamais la valeur exacte de 0,1 à écrire dans la base de données. Au lieu de cela, il serait le plus proche de correspondance dans la représentation binaire (float ou double précision) à 0.1. Prendre (c'est la prochaine correspondance la plus proche à 0.1) comme le gold standard pour comparer les données écrites dans la base de données puis de les lire, il semble BINAIRE DOUBLE devrait être un match parfait.

OriginalL'auteur ggkmath | 2012-02-29