Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/03/2011, 11h01   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 4
Points : 0
Points : 0
Par défaut nombre décimal et précision

bonjour,
dans oracle 10, quand un champ numérique est défini par NUMBER(3,2), que signifie le 3 et le 2 ?
Pour moi, 3,2 signifie : 3 chiffres avant la virgule ET 2 chiffres après (soit 2décimales). (par exemple: 123,45). Est-ce correct ?
Ou bien le premier chiffre doit-il être une longueur totale de digits (nombre de chiffres avant + nombre de chiffres après la virgule) ? (par exemple 1,23 )
Merci d'avance pour votre réponse
internettefr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 11h55   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 459
Points : 10 459
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Votre seconde interprétation est la bonne.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 14h07   #3
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
C’est juste un peu plus subtil que ça
Citation:
Specify a fixed-point number using the following form:

NUMBER(p,s)

where:

•p is the precision, or the total number of significant decimal digits, where the most significant digit is the left-most nonzero digit, and the least significant digit is the right-most known digit. Oracle guarantees the portability of numbers with precision of up to 20 base-100 digits, which is equivalent to 39 or 40 decimal digits depending on the position of the decimal point.

•s is the scale, or the number of digits from the decimal point to the least significant digit. The scale can range from -84 to 127.

◦Positive scale is the number of significant digits to the right of the decimal point to and including the least significant digit.

◦Negative scale is the number of significant digits to the left of the decimal point, to but not including the least significant digit. For negative scale the least significant digit is on the left side of the decimal point, because the actual data is rounded to the specified number of places to the left of the decimal point. For example, a specification of (10,-2) means to round to hundreds.

Scale can be greater than precision, most commonly when e notation is used. When scale is greater than precision, the precision specifies the maximum number of significant digits to the right of the decimal point. For example, a column defined as NUMBER(4,5) requires a zero for the first digit after the decimal point and rounds all values past the fifth digit after the decimal point.

mnitu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/03/2011, 15h16   #4
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 261
Points : 3 261
Moi j'ai l'habitude de le présenter comme ça.
C'est plus parlant à mes yeux, et ça a l'avantage d'être en français !

Dans "NUMBER(a, b)",
- a représente le nombre de chiffres significatifs (nombre de chiffres qui seront stockés en base, en ignorant les 0 à gauche)
- b, ou plus exactement "10 puissance -b", représente "l'unité de comptage".

NUMBER(3, 2) est un nombre de 3 chiffres maximum, l'unité étant le centième (10 puissance - 2) --> X.XX
NUMBER(2, 3) est un nombre de 2 chiffres maximum, l'unité étant le millième (10 puissance - 3) --> 0.0XX
NUMBER(5, -2) est un nombre de 5 chiffres maximum, l'unité étant la centaine (10 puissance - -2) --> XXXXX00

Code :
1
2
3
4
5
6
7
8
DROP TABLE test;
CREATE TABLE test(a number(3, 2), b number(2,3), c number(5, -2));
INSERT INTO test VALUES(5.6789, 0.012345, 3456789.432);
SELECT * FROM test;
 
        A          B          C
--------- ---------- ----------
     5,68       ,012    3456800
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 08/03/2011, 15h39   #5
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 459
Points : 10 459
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Le réalisme du professionnel de la formation a parlé !
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 15h42   #6
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
J’hésite entre ce n’est pas mal du tout et c’est très bien.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 15h49   #7
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 261
Points : 3 261
Citation:
Envoyé par mnitu Voir le message
J’hésite entre ce n’est pas mal du tout et c’est très bien.
Un demi complément de Mnitu, ça vaut un sacre !
Merci les gars.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h20.


 
 
 
 
Partenaires

Hébergement Web