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 :

Calcul avec type Double


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Par défaut Calcul avec type Double
    Bonjour,

    Voila j'aimerais savoir comment faire au mieux pour que cette multiplication s'effectue correctement en C#:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double Anzahl = double.Parse("50687560.00");//aktien[i].selectSingleNode("@Anzahl").text);
    double AktienWert= double.Parse("0.01");//aktien[i].selectSingleNode("@AktienWert").text);
    totalaktien = (Anzahl * AktienWert);
    En effet, pour toute personne normalement constituté la réponse est :

    506'875.60

    Hors ca me renvoie dans totalaktien :

    506'875.600000000003

    Pourquoi c'est a cause de ces fameuse puissance 10 et de l'inexactitude de ... mais le problème n'est pas là comment je fais pour avoir le bon résultat du moins le logique? Un substring? ou y a mieux? Y a t'il un risque d'erreur?

    Car finalement seul les chiffres jusqu'a la 2ème décimal m'intéresse.

    Merci

    Thierry

  2. #2
    Membre éclairé Avatar de padodanle51
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 389
    Par défaut
    A ta place je convertirai en string, et une fois ens tring je ferai un substring, il n'y a pas de risque d'erreur sauf en fonction de ton symbole de décimal (si c'est un point comme en anglais ou une virgule comme en france)
    Bon courage

  3. #3
    Membre éclairé Avatar de padodanle51
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 389
    Par défaut
    Voilà en code la solution pour multiplier 4.05 par 6.03 comme tu pe le constater le +3 permet de prendre la valeur 2 chffre après la virguel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MessageBox.Show(Convert.ToString((4.05 * 6.03)).Remove((Convert.ToString((4.05 * 6.03)).IndexOf(","))+3));
    Oubli pas de mettre ton problème résolu

  4. #4
    Membre Expert
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Par défaut
    Oui c'est une bonne idée merci de me l'avoir donné!

    Mais ce que j'ai fait pour finir c'est convertir en long (donc multiplier par 100 mon double) et le tour est joué plus d'erreur possible

    Je sais pas je vais peut-être changer car j'aime bien que ca tienne sur une seul ligne.

    ++

    Thierry

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

Discussions similaires

  1. Erreur de calcul avec type long
    Par aspire dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 16/09/2014, 17h31
  2. Réponses: 15
    Dernier message: 10/05/2007, 13h36
  3. problème d'overflow avec variable type double
    Par ben83 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 15/02/2007, 09h55
  4. Problème de calculer avec textbox et produire un single ou double ?
    Par zizou2007 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 27/01/2007, 18h59
  5. arrondi avec type double
    Par la drogue c'est mal dans le forum MFC
    Réponses: 6
    Dernier message: 08/04/2005, 17h51

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