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

C# Discussion :

Précision flottant sur Proc 64 bits


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 107
    Par défaut Précision flottant sur Proc 64 bits
    Bonjour,

    je n'arrive pas à savoir pourquoi lorsque je fais ce simple calcul en C# d'après les autre discussions des forums, la précision que me renvoie C# devrait suffir pour avoir le nombre correct:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    float o = 0.0575277540f;
    float yyy = 4.82798f;
     
    float hhh = o * yyy;
    la valeur de hhh est : 0,277742863

    alors que le vrai calcul fait : 0,2777428457...

    Merci par avance

  2. #2
    Membre émérite
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Par défaut
    Bonjour,

    Si l'on regarde la documentation msdn :
    - Précision Float
    - Précision Double

    Tu devrais essayer de passer par des Double qui ont une précision plus important

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    Il n'y a de "vrai calcul" avec les float sur une telle précision
    http://msdn.microsoft.com/fr-fr/libr...=vs.80%29.aspx
    ( d'ailleurs il est juste au niveau de sa représentation 0.0575277545 * 4.82798 = 0.277742848 )


    Si tu as un besoin d'une tel précision utilise un décimal (28 chiffres significatifs),
    c'est plus lourd mais au moins le résultat est garanti

    Si tu souhaite "optimiser" prend un Double comme le conseil Gurdil le nain, dans ton exemple le résultat sera le même en utilisant des Double ou des Decimal

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

Discussions similaires

  1. Addition d'entier signé sur 64 bits sur un proc 32 bits
    Par SoJaS dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 10/08/2010, 07h22
  2. Installation sur proc 64 bits
    Par calou_33 dans le forum Installation
    Réponses: 3
    Dernier message: 07/01/2009, 22h11
  3. Réponses: 2
    Dernier message: 13/12/2006, 13h58
  4. affichage zone flottante sur onmouseover
    Par kahya dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/06/2006, 14h13
  5. probleme avec les string sur ITA2 64 bits!
    Par vince3320 dans le forum SL & STL
    Réponses: 5
    Dernier message: 22/08/2005, 19h59

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