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 6 et antérieur Discussion :

[VB][INFO] A propos de la fonction Round


Sujet :

VB 6 et antérieur

  1. #1
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut [VB][INFO] A propos de la fonction Round
    Bonjour à tous,
    Saviez vous que la fonction Round est très bizarre en VB :
    Si vous faites :
    le résultat est 10.12 au lieu de 10.13
    êtes vous au courant de ce problème ??

    Pour ceux que ca interesse une fonction Round qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Round(ByVal X As Double, ByVal N As Integer) As Double
        Round = Format(X, "0." & String$(N, "0"))
    End Function
    Si quelqu'un en sait plus, je suis très interessé.
    Merci.

  2. #2
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    ca dépend des compilateur

    exemple: en c++, le C++Builder peut arondir au plus haut tandis qu'avec Visual C++ ca peut arondir au plus bas.

  3. #3
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Merci de ta réponse.
    Oui, mais justement n'y a t'il pas une norme française qui précise justement qu'on doit arrondir vers le haut ou vers le bas ... :

  4. #4
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    il y a bien une règle en math. Mais faut croire que les programmeur des compilo la connaissent pas

  5. #5
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Citation Envoyé par shwin
    il y a bien une règle en math. Mais faut croire que les programmeur des compilo la connaissent pas
    Oui ...
    Mais je crois que cette règle stipule vers le haut donc la solution 10.13.
    il serait intéressant de savoir ce qui se passe dans les autres langages ....

  6. #6
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    si je me rapel bien (c'est loin dans ma petite tête )

    si tu as un nombre comme ceci: 1.2356 et que tu veux arondir à 2 décimales.

    -Si le chiffre apers le 5 est un chiffre pair alors vers le haut : 1.24
    -Si le chiffre apres le 5 est un chiffre impair alors vers le bas: 1.22

  7. #7
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    J'en ai discuté avec mes collègues et je crois pourtant que la règle mathématique c'est au dessus : 10.125 Donne donc 10.13.

    encore pour info :
    VB.DotNet donne 10.12
    Windev9 donne 10.13

    : :

  8. #8
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Ce problème a déjà été abordé: comme le disait L.nico il faut utiliser la fonction Format à la place de Round

  9. #9
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Merci de ton intervention HPJ ,
    en fait ce qui m'interesse surtout, ce n'est pas la manière de contourner le problème, mais pourquoi ce problème existe dans certains langages ?
    Est-ce un problème de conversion de types ?
    ...
    J'hesite à déplacer le sujet dans '"Débat sur le développement" ...

  10. #10
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Citation Envoyé par MSDN
    The Round function performs round to even, which is different from round to larger. The return value is the number closest to the value of expression, with the appropriate number of decimal places. If expression is exactly halfway between two possible rounded values, the function returns the possible rounded value whose rightmost digit is an even number. (In a round to larger function, a number that is halfway between two possible rounded values is always rounded to the larger number.)
    Nous on veut du round to larger alors que la fonction VB retourne du round to even : c'est ce que disait Shwin

  11. #11
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    OK Merci beaucoup
    Le sujet est clos.

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

Discussions similaires

  1. A propos de la fonction AlphaBetaWithMemory
    Par tsing dans le forum Intelligence artificielle
    Réponses: 4
    Dernier message: 15/04/2008, 15h05
  2. [FTP] Question à propos de la fonction copy()
    Par Mo_Poly dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2008, 11h36
  3. Utilisation de la fonction round
    Par Christophe Charron dans le forum Requêtes
    Réponses: 3
    Dernier message: 06/01/2008, 17h49
  4. erreur sur la fonction ROUND
    Par llulu24 dans le forum VBA Access
    Réponses: 10
    Dernier message: 11/12/2007, 08h00
  5. [Info]pliage/depliage de plusieurs fonctions d'un coup
    Par pierre.zelb dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 22/06/2005, 14h17

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