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

VB.NET Discussion :

[VB.NET][Double] Comment éviter la virgule flottante ?


Sujet :

VB.NET

Vue hybride

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 60
    Par défaut [VB.NET][Double] Comment éviter la virgule flottante ?
    Boujour à tous,

    Je viens de tomber sur un problème très bisard avec VB : , alors je parcour un tableau et je recherche dans ce tableau un double donc voici comment je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      Do Until parcour_valeur = valeur_deb_parcour
                  MsgBox(parcour_valeur)
                I = 1
                Do Until I = nb_releve
                    If article.tableau_releves(I) = parcour_valeur Then
                        x(I) = article.tableau_releves(I)
                        n(I) = n(I) + 1
                    End If
                    I = I + 1
                Loop
                parcour_valeur = parcour_valeur + "0,1"
            Loop
    Les variables parcour_valeur et tableau_releves(I) sont des double, donc je lance ma fonction, donc la premiere valeur affiché par MsgBox est 0, la deuxième 0.1 la troisième 0.2 ...

    Jusque la ca va, mais arrivé a la 16ème valeur environ, il pète un plomb et m'affiche 0,16000000001??? à rien y comprendre.

    @++
    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Bienvenue dans le monde merveilleux de la virgule flottante et de sa précision toute approximative.

    C'est pas pour rien qu'il ne faut jamais utiliser Single/Double pour stocker/traiter des données monétaires, et que Decimal/money ont été inventés :)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 60
    Par défaut
    Cool, merci Maniak

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 16/09/2011, 00h38
  2. Comment éviter un double lancement ?
    Par oeilvert dans le forum Bibliothèque standard
    Réponses: 11
    Dernier message: 02/02/2011, 09h53
  3. Comment éviter le double envoi d'une requete?
    Par ando0098 dans le forum JSF
    Réponses: 7
    Dernier message: 07/10/2010, 16h47
  4. comment éviter un double click malheureux
    Par Godard dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/10/2010, 18h15
  5. Réponses: 4
    Dernier message: 28/07/2004, 10h42

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