IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

nombre décimal et précision


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 4
    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

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Votre seconde interprétation est la bonne.

  3. #3
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Par défaut
    C’est juste un peu plus subtil que ça
    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.


  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Le réalisme du professionnel de la formation a parlé !

  6. #6
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Par défaut
    J’hésite entre ce n’est pas mal du tout et c’est très bien.

  7. #7
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    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.

Discussions similaires

  1. [MySQL] mettre nombre décimal en entier
    Par splouf dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 18/01/2006, 12h20
  2. Réponses: 4
    Dernier message: 21/12/2005, 12h20
  3. [VB.NET] Nombre décimal
    Par Sadneth dans le forum ASP.NET
    Réponses: 8
    Dernier message: 25/11/2005, 12h41
  4. insérer un nombre décimale dans une table
    Par mouloudéen dans le forum Access
    Réponses: 4
    Dernier message: 02/10/2005, 21h29
  5. CRITERIA - Représentation binaire d'un nombre décimal signé.
    Par RamDevTeam dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 10/08/2005, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo