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 :

Problème avec opération sur les double


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Par défaut Problème avec opération sur les double
    Nous avons rencontré un problème sur une application de facturation nécessitant des calculs précis.
    L'application est en ASP 3.0/Vbscript et javascript.
    Le vb donnant le même résultat que le javascript.

    --- En vb : CDbl(a) - CDbl(b) ---> Round(val, 3)
    --- En javascript : ParseFloat(a) - ParseFloat(b) ---> toFixed(3)
    pour résoudre le problème, nous avons du utilisé l'opération d'arrondi pour avoir le résultat attendu.

    J'ai déjà eu un problème sur les opérations quand les deux opérandes n'étaient pas de même type, par exemple (int / double).


    J'ai voulu faire un test en C#, on obtient le même résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     double a = double.Parse("6,8") - double.Parse("6,4");
     decimal b = decimal.Parse("6,8") - decimal.Parse("6,4");
    //Résultat :
    // a : 0.39999999999999947
    // b : 0.4
    Auriez-vous une explication à cette problématique ?
    J'ai pensé à l'encodage du type double, l'appproximation ...



    Merci de vos réponses.

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par luimême Voir le message
    J'ai pensé à l'encodage du type double, l'appproximation ...
    T'as ta réponse Tu devrais trouver un peu plus sur ce même forum en cherchant "double", "précision". Mais effectivement, pour des données de facturation (i.e. avec assez peu de chiffres après la virgule), les décimaux sont tout indiqués.

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    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 197
    Par défaut
    single et double sont des types reels encodé avec une formule mathématique
    ce qui permet d'avoir une valeur exacte, meme pour des quotients

    malheureusement lors de calculs, on se retrouve parfois avec des nombres infinis après la virgule ...

    donc il faut le type decimal qui lui enregistre les chiffres et la position de la virgule plutot qu'une représentation mathématique du nombre
    malheureusement sur des calculs lourds et soutenus, le type decimal est plus lent
    ce type correspond d'ailleurs au type money dans sql server par exemple, qui sert donc pour les factures et autre
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. [WD15E] Problème avec NULL sur les rubriques DATE
    Par Hemgé dans le forum WinDev
    Réponses: 2
    Dernier message: 09/02/2012, 10h42
  2. [Interface] Problème de DrawCell sur les StringGrid avec le style gdsGradient
    Par getz85 dans le forum C++Builder
    Réponses: 0
    Dernier message: 15/02/2010, 11h25
  3. Problème avec SED et les caractères "/" sur Solaris
    Par supermen3000 dans le forum Solaris
    Réponses: 2
    Dernier message: 03/07/2009, 11h14
  4. [Conception] problème avec firefox sur les champs input type="file"
    Par maverick56 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 11/05/2007, 10h57
  5. [DOM] Problème d'accent sur les noms de fichier avec mon parseur
    Par ujoodha dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 06/04/2006, 21h55

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