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

MS SQL Server Discussion :

problème de float sur SQL server 2000.


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 20
    Points : 12
    Points
    12
    Par défaut [RESOLU] problème de float sur SQL server 2000.
    Bonjour,
    Voici mon souci : je saisi sur sql server (ou via mon application Delphi) un float exemple : 15,5 et lorsque je visualise cette valeur sous SQL server, j'ai bien 15,5 mais lorsque je vais sur l'analyseur de requête, j'obtiens soit 14,49999999998 soit 14,5000000001, au choix, ça dépend des fois. Mais je ne sais pas de quoi ça dépend ! Mais il peut très bien parfois garder la bonne valeur, à savoir 15,5. :
    Avez-vous déjà rencontré ce type de problème, ou avez-vous une idée de ce qui se passe ?
    Merci pour vos futures réponses qui me seront bien précieuses.

    Fidji.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    c'est dû au type de champ que tu utilises (il me semble). un float est censé représenter un nombre approximatif.
    Pourquoi ne pas utiliser le type decimal?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    merci beaucoup, je vais tester ça.
    Mais ça m'étonne quand même énormément que "l'arrondi" se fasse dans ce sens-là, dans l'autre sens, j'aurais mieux compris (de 14,49999998 à 15,5).

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Si ça ne marche toujours pas, essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    type : numeric
    précision : 18
    échelle : 2
    Don't try it, catch it !
    It's the only way to make it work !

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cast(MonChamp as Decimal(8,2))
    Faira l'affaire

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Euh ! Si la valeur dans la table est bien 15.5 (visible via isql par exemple), il s'agit peut-etre d'un cas de bord de l'outil frontal uniquement.
    Que vois-tu via isql ou osql (mode texte)?
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    d'abord, je tenais à remercier chacun d'entre vous pour toutes vos réponses.
    Pour l'isql, j'ai téléchargé PostGreSQL pour me connecterà ma base afin de pouvoir lire quelle valeur il y avait. Mais je n'ai pas réussi, y-a-t-il une méthode plus simple ?
    En tout cas, lorsque j'interroge la valeur via un objet ADO (sur Delphi), j'obtiens bien mes 15,5.
    Le problème c'est que lors de l'exécution d'une requête d'égalité entre 2 valeurs qui sont a priori égales, sql ne me renvoit rien car il considère que le 15,5 est 15,4999999998 et que la deuxième valeur est bien à 15,5.

    Mais je vais essayer avec des numerics, comme certains d'entre vous me l'on conseillé.

    Merci pour tout.

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Tu n'as pas besoin de PostGreSQL pour le faire.
    En fait le ISQL et le OSQL sont des programmes dos qui vous permettent de vous connecter et interroger vos bases en mode interractif.
    Si vous chercher à faire plus simple, utilser l'analyseur de rerequêtes.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    c'est justement gràce à l'analyseur de requête que j'ai vu que mon 15,5 apparaissait en 15.499999998.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 20
    Points : 12
    Points
    12
    Par défaut OK
    C'est ok, en passant par le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    type : numeric 
    précision : 18 
    échelle : 2
    ça marche.

    Merci à tous.

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

Discussions similaires

  1. Problème champ auto-incrément sur SQL Server 2000
    Par samirmember dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/03/2010, 13h17
  2. Réponses: 5
    Dernier message: 25/08/2008, 14h06
  3. renseignements sur SQL Server 2000
    Par nagty dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/06/2005, 20h59
  4. [debutant]Auto incrementation sur sql-server 2000
    Par syl2095 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 18/11/2004, 18h00
  5. Problème d'installation de sql server 2000
    Par michelci dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 12/12/2003, 08h02

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