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

Langage SQL Discussion :

Problème affichage float


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Par défaut Problème affichage float
    Bonjour,

    On a créé une table dont un champ est de type float, mais en faisant un select sur ce champ et dès que les valeurs sont inferieurs à 1 on obtient un résultat du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Create table Y(X float);
    Insert into Y  Values   (0.60);
    Insert into Y  Values   (1.50);
    Insert into Y  Values   (10.60);
     
    SQL> select * from y;
    	 X
    ----------
    	.6
           1.5
          10.6
    Ce qui nous embete c'est l'affichage du ".6" au lieu du "0.6" alors qu'à l'insertion, un 0.6 a été bien précisé et si on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     SQL> select to_char(X,'0.00') from Y;
    TO_CH
    -----
     0.60
     1.50
    #####
    On perd de l'info. Comment peut-on faire sans passer par un to_char?? J'ai beau chercher sur google, personne n'a eu apparemment ce problème :-(

    Merci de votre retour..

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut
    Bonjour,

    Je me suis penché sur votre problème cette semaine, j'ai écrit un post accessible ici. En fait, vous vous tromper sur le rôle du SGBD. Le SGBD doit conserver vos données sans perdre d'information, un float garde la meme précision. Pour l'affichage et le formatage, c'est au programme client de le faire, dans mon cas en c#.

  3. #3
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonjour,

    Est-ce qu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CAST(X AS DECIMAL (4 ,2)) AS X
    résoud le problème ?


    Après cela dépend aussi du SGBD utilisé !

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Par défaut
    Désolée, il s'agit d'Oracle 10g 10.2.0.3.0.

    On sait que l'info est bien stockée au niveau de la base, c'est seulement qu'à l'extraction, on obtient pas ce qu'on veut, y'a-t-il un paramètre au niveau de la session ou autre à modifier? ou y-a-t il une fonction simple qui permet d'avoir le résultat voulu à l'affichage càd le 0.6 et non le .6 sans passer par un to_char tordu?
    Avec Toad l'affichage est correct mais avec sqlplus non!!

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Par défaut
    Merci Chtulus,

    Mais le CAST ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SQL> select CAST(X AS DECIMAL (4 ,2)) AS X from y;
     
    	 X
    ----------
    	.6
           1.5
          10.6
    D'autres idées

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 042
    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 : 22 042
    Billets dans le blog
    6
    Par défaut
    y'a-t-il un paramètre au niveau de la session ou autre à modifier?
    non
    non
    non
    et
    non

    Comme on vous l'a déjà dit, vous confondez SGBDR et outils clients. Un SGBDR n'est pas là pour faire de la cosmétique !
    Lisez ce que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L9

    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/ * * * * *

Discussions similaires

  1. Problème d'affichage ==> float?
    Par papouuu dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 27/01/2011, 09h52
  2. [Float] problème affichage caractères
    Par Commodore dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 07/05/2008, 15h22
  3. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 13h31
  4. [IB701] problème de float ??
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 5
    Dernier message: 15/09/2003, 14h15
  5. problème de float sur SQL server 2000.
    Par fidji dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 24/07/2003, 14h15

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