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 :

enlever 0.05 a une variable double ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Par défaut enlever 0.05 a une variable double ?
    bonjour, je travail sur un monnayeur et quand le prix est de 499,99€ si je donne 500€ la monnaie est de : 0,00999989826281819999, je voudrais seulement 0,01 et je trouve pas mon problème. Pouvez vous m'aider ?

    voici une partie du code qui fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
                    int u500;
                    u500 = Convert.ToInt32(mainForm.l500.Text); // u500 est le nombre de billet de 500 que j'ai dans ma caisse 
                    int c500 = 0;  // c500 est initiée a 0 ailleurs et est le nombre de billet de 500 qu'on doit rendre   
                    double Lm;
                    Lm = Convert.ToDouble(mainForm.lMonnaie.Text); // valeur rentrée sur un label (lMonnaie) dans un autre form (mainForm )
     while (Lm >= 500)
                    {
     
                        if (u500 >= 1)  
                        {
                            u500 = u500 - 1;
                            c500 = c500 + 1; 
                            Lm = Lm - 500;
                            int t = int.Parse(mainForm.l500.Text);// nb de billet dans la  caisse 
                            int s = t - 1;// nb de billet de caisse -1
                            mainForm.l500.Text = s.ToString();
                        }
                        if (u500 == 0)
                        {
                            break;
                        }
                    }
                    if (c500 >= 1) { mainForm.lmonnayeur.Text += "\nBillet de 500€ :" + c500; }
    et après c'est exactement pareille mais avec 200 ; 100 ; 50 ; 20 ; 10 ; 2 ; 1 ; 0,5 ; 0,2 ; 0,1 ; 0,05 ; 0,02 ; 0,01

    merci de votre aide

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    single (float) et double sont des types approximatifs (via des puissances de 2) permettant des calculs plus rapides
    pour des valeurs précises il faut utiliser le type decimal qui lui n'est pas approximatif
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Par défaut
    ok merci d'avoir répondu si vite c’était bien en decimal qu'il faut faire .

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

Discussions similaires

  1. [Batch] Enlever les espaces d'une variable
    Par student524 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 15/11/2014, 21h26
  2. [PHP 5.0] Enlever les doublons dans une variable
    Par raphy31 dans le forum Langage
    Réponses: 10
    Dernier message: 26/03/2014, 10h10
  3. Enlever des caractères d'une variable
    Par vince_est dans le forum SAS Base
    Réponses: 7
    Dernier message: 13/01/2011, 12h00
  4. composant tMap : convertir une variable double en BigDecimal
    Par jeanphi45 dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 02/04/2010, 17h22
  5. [DEBUTANT] Transformer une variable Double en STring
    Par Battosaiii dans le forum Langage
    Réponses: 6
    Dernier message: 13/06/2005, 16h43

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