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

SQL Oracle Discussion :

Type nombre décimal ORACLE


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Points : 11
    Points
    11
    Par défaut Type nombre décimal ORACLE
    Bonjour à tous,

    je vous sollicite parceque je dois insérer des données financières dans une base oracle. Ce sont des décimaux donc j'ai besoin de retrouver exactement la même valeur (sans arrondi ni troncature).
    Quand j'insère 6421.43237760692 en number(38,20), il me l'arrondi quand même en gardant 4 chiffres après la virgule.
    Quel type utiliser svp? Merci par avance pour votre aide.

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    C'est juste de l'affichage, tu dois être sous sql+

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    SQL> create table WMC (n NUMBER(38,20));
    Table created.
     
    SQL> insert into wmc values (6421.43237760692);
     
    1 row created.
     
    SQL> select * from wmc;
     
             N
    ----------
    6421.43238
     
    SQL> select to_char(n) from wmc;
     
    TO_CHAR(N)
    ----------------------------------------
    6421.43237760692
     
     
    SQL> select * from wmc where n = 6421.43238;
     
    no rows selected
     
    SQL> select * from wmc where n = 6421.43237760692;
     
             N
    ----------
    6421.43238
     
    SQL> set num 38
    SQL> select * from wmc;
     
                                         N
    --------------------------------------
                          6421.43237760692
    Par défaut sous sql+, les nombres sont sur 10
    http://ss64.com/ora/syntax-sqlplus-set.html
    NUM[WIDTH] {10|n}
    The default width for displaying numbers.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    20 décimales de précision n'a rien à voir avec des "données financières". 2 voir rarement 3 suffisent comme dans Number(15,2).

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    je ne suis pas sûre d'avoir compris le sens de number(p,s). s est bien le nombre de chiffres après la virgule? et p?
    J'avais mis 20 pour avoir le maximum de chiffres après la virgule affichés

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par McM Voir le message
    C'est juste de l'affichage, tu dois être sous sql+

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    SQL> create table WMC (n NUMBER(38,20));
    Table created.
     
    SQL> insert into wmc values (6421.43237760692);
     
    1 row created.
     
    SQL> select * from wmc;
     
             N
    ----------
    6421.43238
     
    SQL> select to_char(n) from wmc;
     
    TO_CHAR(N)
    ----------------------------------------
    6421.43237760692
     
     
    SQL> select * from wmc where n = 6421.43238;
     
    no rows selected
     
    SQL> select * from wmc where n = 6421.43237760692;
     
             N
    ----------
    6421.43238
     
    SQL> set num 38
    SQL> select * from wmc;
     
                                         N
    --------------------------------------
                          6421.43237760692
    Par défaut sous sql+, les nombres sont sur 10
    http://ss64.com/ora/syntax-sqlplus-set.html
    Donc le nombre est bien stocké correctement mais mal affiché?

  6. #6
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    NUMBER Data Type
    Combiens des article achetez-vous où les prix sont affichés avec 20 décimales ?

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    Je ne crois pas que vous ayez compris le sens de "données financières". Je manipule des données qui doivent être extrêmement exactes.
    C est de l aide que je suis venue chercher alors si vous ne pouvez pas me l apporter, épargnez-moi vos commentaires.

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par mnitu Voir le message
    20 décimales de précision n'a rien à voir avec des "données financières". 2 voir rarement 3 suffisent comme dans Number(15,2).
    Pas du tout. Aujourd'hui l'autorité de marché financier (AMF) impose 12 décimales (si ma mémoire est exacte) pour les calculs financier.... Par exemple vous oubliez que certaines monnaies sont très faibles et la conversion de l'une dans l'autre, notamment pour des cotations internationales des différentes bourses conduirait à des erreurs catastrophiques.
    Un exemple, le dollar zimbabwéen...
    En France c'est 6 décimales : http://www.economie.gouv.fr/dgfip/arrondis

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  9. #9
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Salut,

    Je ne vois pas en quoi ton lien contredit mes propos. Le taux de conversion a plus de décimales mais les montants sont toujours arrondis, le document en question expliquant plutôt comment les règles de conversion doivent être appliqués.
    Le prix de l'essence affiché à la pompe contient 3 décimales et je suis tout à fait d'accord que certaines applications particulières peuvent avoir besoin de manipuler un peu plus. 12 encore est assez généreux. Mais nul besoin de plonger dans l'univers quantique pour manipuler autant de décimales que la constante du Planck.

    @Hdnndh
    Vous est certain de comprendre ce que veut dire "extrêmement exactes" pour ne pas dire juste "exactes" dans le calcul numérique ?

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    Comme je l'ai mentionné plus haut, je me passerai bien de vos commentaires. Ce n est pas le sujet de cette discussion. Hors sujet donc à bon entendeur...

  11. #11
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Donc le nombre est bien stocké correctement mais mal affiché?
    Oui, mais tu dois vérifier, je ne sais pas comment tu insères les données.

    je ne suis pas sûre d'avoir compris le sens de number(p,s). s est bien le nombre de chiffres après la virgule? et p?
    J'avais mis 20 pour avoir le maximum de chiffres après la virgule affichés
    Number(p, s) qu'on prononce (pour plus de compréhension) : NUMBER P dont S
    un NUMBER(38,20) est un nombre qui aura 38 chiffres dont 20 après la virgule (donc 18 avant, et 20 après)
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  12. #12
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par McM Voir le message
    Oui, mais tu dois vérifier, je ne sais pas comment tu insères les données.


    Number(p, s) qu'on prononce (pour plus de compréhension) : NUMBER P dont S
    un NUMBER(38,20) est un nombre qui aura 38 chiffres dont 20 après la virgule (donc 18 avant, et 20 après)
    Merci infiniment.C'était bien stocké.

  13. #13
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Citation Envoyé par Hdnndh Voir le message
    Comme je l'ai mentionné plus haut, je me passerai bien de vos commentaires. Ce n est pas le sujet de cette discussion. Hors sujet donc à bon entendeur...
    Oula, c'est qu'il s'énerverait presque ! En attendant, j'ai quand même appris des trucs (normalisation des calculs de change). merci, SQL Pro
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Nombre décimal
    Par Sadneth dans le forum ASP.NET
    Réponses: 8
    Dernier message: 25/11/2005, 12h41
  2. Problème avec le type BLOB dans oracle
    Par pguedia dans le forum Oracle
    Réponses: 1
    Dernier message: 10/11/2005, 17h33
  3. Type de données Oracle 9-10 et SQL Server 2000
    Par fabrice_bruxelles dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 05/10/2005, 11h21
  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