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

Windows Forms Discussion :

conversion de string en double


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2014
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 201
    Par défaut conversion de string en double
    Bonjour,

    Quand je fait l'une de ces conversions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ctype("5,2",Double)
    cdbl("5,2")
    convert.ToDouble("5,20")
    J'obtiens comme valeur = 5.2000000000000002

    JE ne comprend pas pourquoi...

    Quelqu'un aurait-il une idée ?

    MErci
    Sylo

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    C'est parce que le type Double ne permet pas toujours de représenter des valeurs décimales exactes. La représentation interne est en base 2, et non en base 10. Or la valeur 5.2 n'a pas de représentation exacte en binaire, donc c'est "arrondi" à la valeur exacte binaire la plus proche, qui n'est pas exactement égale à 5.2.

    Voir cet article pour plus de détails : http://csharpindepth.com/Articles/Ge...tingPoint.aspx
    (en anglais)

    Si tu as besoin que la valeur soit exacte, utilise le type Decimal à la place de Double. C'est un peu moins performant pour les calculs, mais c'est ce qu'il faut utiliser quand la valeur doit absolument être exacte (calculs financiers par exemple). Double est approprié quand l'exactitude est moins importante, par exemple pour des grandeurs physiques dont la mesure n'est de toute façon pas exacte.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2014
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 201
    Par défaut
    ok super, je passe tout en decimal
    Sylo

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

Discussions similaires

  1. [VB.NET] Conversion de String en Double
    Par JB-Tech dans le forum Windows Forms
    Réponses: 9
    Dernier message: 26/02/2018, 07h32
  2. bête conversion de string en double
    Par lucky dans le forum MFC
    Réponses: 10
    Dernier message: 12/02/2014, 08h01
  3. Conversion de string en double
    Par etendard7 dans le forum C++
    Réponses: 4
    Dernier message: 05/04/2012, 17h45
  4. Réponses: 23
    Dernier message: 09/09/2010, 13h11
  5. conversion string en double
    Par zmatz dans le forum SL & STL
    Réponses: 2
    Dernier message: 14/10/2005, 22h46

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