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 :

Float To Double mes difficultes


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Par défaut Float To Double mes difficultes
    Salut A tous!!! j'ai un double : 3,14159265...

    J'ai essaye de la caste en float :

    - float v = (float)3.14159265 ;
    - float v = Convert.ToSingle(3.14159265);

    Mais j'obtiens toujours la mm reponse : 3.141593 ....
    est possible d' avoir pour float v = 3.14159265 si possible ....

    tout en sachant que float(16 bits) double(32bits)
    Merci!!!

  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 : 43
    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
    Citation Envoyé par 3logy Voir le message
    Mais j'obtiens toujours la mm reponse : 3.141593 ....
    est possible d' avoir pour float v = 3.14159265 si possible ....
    Non. L'encodage d'un float en binaire ne permet pas de stocker la valeur exacte, donc c'est arrondi au nombre le plus proche qu'on peut encoder dans un float.

    Citation Envoyé par 3logy Voir le message
    tout en sachant que float(16 bits) double(32bits)
    Non... float = 32 bits, double = 64 bits

  3. #3
    Membre éclairé Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Par défaut
    Citation Envoyé par tomlev Voir le message

    Non... float = 32 bits, double = 64 bits
    Ouais c vrai!!!

    @StormimOn ouias mais c pas un PI dans l'exo que je dois resourdre

    Okay c note.....

    existe t'il une methode pour arrondir "au plus pres" avec Math.Round c-a-d :



    et je veux avoir au lieu d'arrondir a est il possible aussi de sauvegarder un double coe ceci sans pertes?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    byte[] buffer = BitConverter.GetBytes( )??

  4. #4
    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 : 43
    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
    Citation Envoyé par 3logy Voir le message
    existe t'il une methode pour arrondir "au plus pres" avec Math.Round c-a-d :


    et je veux avoir au lieu d'arrondir a
    3.14159265 pourrait à la rigueur être arrondi en 3.1415927, mais je ne vois pas selon quelle logique tu l'arrondirais à 3.1415925
    mathématiquement, ça n'a aucun sens

  5. #5
    Membre éclairé Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Par défaut
    Oui c vrai.... a force de chercher comment ne pas arrondir une valeur dans son format IEEE-754...je raconte des conneries lol....

    Merci... Je crois k je devrais concretement poser mon probleme parce que la je tape dans le noir!!

  6. #6
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Tu auras une perte suite à la conversion, tu ne peux rien y faire car c'est dû à la précision des float.

    Au passage, et vu la valeur que tu veux convertir, utilise Math.PI si ce n'est pas déjà le cas

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

Discussions similaires

  1. float ou double, mauvais format?
    Par didier17062006 dans le forum C++Builder
    Réponses: 6
    Dernier message: 18/10/2006, 12h42
  2. [débutant] Convesion Float to double
    Par cyrill.gremaud dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2006, 09h06
  3. Problème conversion float vers double
    Par jhenaff dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/01/2006, 10h39
  4. Conversion d'un tableau de float en double ?
    Par alex6891 dans le forum C++
    Réponses: 5
    Dernier message: 05/01/2006, 06h04
  5. float ou double ?
    Par Neilos dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/01/2004, 20h12

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