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 Delphi Discussion :

Précision du type Single


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Points : 62
    Points
    62
    Par défaut Précision du type Single
    Re bonjour à tout le monde !

    Décidement, je ne peux plus me passer de vous !

    J'ai un petit problème : je dois travailler avec des nombres très précis, dans le cadre de mon travail.
    Je déclare une variable Value de type Single.

    Je donne à cette variable la valeur 1.1.

    Mais, quand j'exécute mon programme en pas à pas, je m'aperçoie que Value ne contient pas 1.1 mais 1.100000000023.

    Je sais que c'est pas grand chose, mais, ça a beaucoup d'importance dans ce que je fais...

    Y'a-t-il un moyen d'améliorer la précision selon vous ?
    Ou, une astuce pour ne pas avoir ce problème ?

    En tous cas je vous remercie !!!


    [EDIT] Si je déclare Value en Double, il n'y a plus ce problème de précision. Mais, je dois travailler avec un Single (protocole oblige).
    D'autre part, si j'esaye de "forcer" la précision, c'est à dire que je donne à Value la valeur 1.10000000000000, il me met quand même 1.10000000023...
    [/EDIT]

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Les types Single et Double ne sont pas des plus précis (virgule flottante donc approximation et non représentation de la valeur).
    En fait cela dépend de la précision dont tu as besoin. Tu peux utiliser le type Extended ou mieux le type Currency si tu travailles au plus avec 5 décimales.

    Une entrée de la FAQ parle du sujet: ici

    @+ Claudius

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Points : 62
    Points
    62
    Par défaut
    Bonjour Cl@udius !

    Merci pour ta réponse, je suis allée lire l'entrée de la FAQ que tu m'as donné et c'est très clair. En fait, je ne sais pas vraiment sur quelle précision je dois travailler. Je sais simplement que j'ai besoin d'un type de données qui permette la virgule mais qui ne prenne pas plus de 4 octets en mémoire (à part le Single, je vois pas).

    J'avais peur que la précision me pose un problème. Mais, vu les contraintes, je vais devoir faire avec !

    En tous cas, une fois de plus, tu as répondu à ma question avec beaucoup d'expertise et je t'en remercie !

    (si tu cherches du boulot, n'hésite pas à envoyer un CV à ma boîte ! Je suis certaine qu'on aura une place pour toi ! )

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

Discussions similaires

  1. [XPath] petite précision sur type de syntaxe
    Par Royd938 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 15/06/2006, 12h13
  2. [MS SQL] Est il possible de forcer la précision du type REAL
    Par TEXMEX dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/04/2006, 17h31
  3. Précision de types en perl
    Par Gnux dans le forum Langage
    Réponses: 7
    Dernier message: 08/11/2005, 08h31
  4. Précision du type float
    Par cj227854 dans le forum C
    Réponses: 5
    Dernier message: 02/11/2005, 20h54
  5. [MS-SQL][ADO] précision du type FLOAT
    Par Le Lézard dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/09/2004, 15h30

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