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

Excel Discussion :

Résultat du calcul =Mod(-1, 10) ?


Sujet :

Excel

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 243
    Points
    243
    Par défaut Résultat du calcul =Mod(-1, 10) ?
    Bonjour,

    J'ai remarqué qu'avec Excel le résultat du modulo de -1 par 10 (=Mod(-1,10)) donne 9, tandis que sur la calculatrice de Windows le résultat est de -1.

    Qui a tord, qui a raison, et pourquoi ? Des idées ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    =MOD(nombre;diviseur)
    peut également s'exprimer par la formule :
    =nombre-diviseur*ENT(nombre/diviseur)
    De plus XL adopte comme signe de résultat celui du diviseur.

    MOD(1;10) = 1
    MOD(-1;10)= 9
    MOD(1;-10) = -9
    MOD(-1;-10) = -1

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par ullan
    =nombre-diviseur*ENT(nombre/diviseur)
    D'après ta formule le résultat devrait donc être -1 non ?

    -1 - (-1)*ENT(-1/10) = -1 - (-1)*0 = -1

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Re,

    Pour MOD(-1;10) → -1-10*ENT(-1/10) = 9

    De plus : ENT(-1/10) = -1 et pas 0

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par ullan
    Re,

    Pour MOD(-1;10) → -1-10*ENT(-1/10) = 9

    De plus : ENT(-1/10) = -1 et pas 0
    Le noeud du problème se situe donc dans ENT(-1/10).

    La définition est bien "partie entière", donc pour moi -1/10 = -0.1, et donc la partie entière est 0. Mais effectivement Excel n'est pas de mon avis.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Je crois que ce n'est pas Excel, puisque d'autres tableurs renvoient le même résultat, mais bien le processeur.
    Il a une logique qui m'échappe à moi aussi !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Je crois avoir compris.

    La fonction ENT arrondit à l'unité inférieure.
    =ENT(0.1) renvoie 0 parce que 0 est < 0.1
    =ENT(-0.1) renvoie -1 parce que -1 est < -0.1
    =ENT(-3.25) renvoie -4 parce que -4 est < -3.25

    Par contre :
    =TRONQUE(0.1) renvoie 0
    =TRONQUE(-0.1) renvoie 0

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Cela se complique !

    Comme je disais ENT arrondit à l'unité immédiatement inférieure, mais :

    =ARR0NDI.INF(1.25;0) = 1
    =ARRONDI.INF(-1.25;0) = -1

    Parce que ARRONDI.INF arrondit en tendant vers 0

  9. #9
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 243
    Points
    243
    Par défaut
    Je suis d'accord que la fonction ENT arrondit à l'unité inférieure, mais ce que je ne comprends pas c'est pourquoi cette manière de faire.

    Le problème finalement c'est qu'il n'y a pas de définition officielle de la fonction ENT, donc on ne sait pas qui a tord ou raison.

  10. #10
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    893
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 893
    Points : 833
    Points
    833
    Par défaut Retour dans le passé
    il était une fois...

    NON arrêtons

    Il y a deux fonctions basic de base (GWBasic...) qui se nommaient "ENT" et "FIX".

    Effectivement "ENT" en français fait penser à la partie entière.
    Et bien non on arrondi à la valeur inférieure. Donc dans les négatifs au nombre entier en dessous.

    Il faut utiliser "FIX" qui correpondait dans le pascal à "TRUNC".

    Voila le problème expliqué.

  11. #11
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    bonjour à tous

    ESVBA ? tu as connus le gwbasic ??? cela fait lontemps que je n'ai pas vu FIX() lol

    bonne journée aux anciens (et aux jeunes)

  12. #12
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    893
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 893
    Points : 833
    Points
    833
    Par défaut Un vieux de vieux
    Un des premières heures

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Salut Wilfried,

    Normal que tu ne connaisses pas, tu n'es pas pas breton.
    Sinon tu aurais eu une idéefix.

    Moi j'aime les filles, surtout Oh! belle X.

  14. #14
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    bonjour ullan, bien les jeux de mot, mais pour ne pas connaitre c'est autre chose, j'ai programme en Mbasic86, l'ancetre du gwbasic, et encore plus loin, en Kbasic, et encore plus loin .................... il n'y avait pas d'ecran snif et je ne suis pas si vieux lol

    Bonne journée

Discussions similaires

  1. Réponses: 8
    Dernier message: 27/12/2007, 12h55
  2. Réponses: 0
    Dernier message: 11/11/2007, 07h03
  3. Affichage d'un résultat de calcul dans une fenêtre
    Par Marcusss dans le forum Interfaces Graphiques
    Réponses: 17
    Dernier message: 03/04/2007, 12h23
  4. Réponses: 5
    Dernier message: 22/11/2006, 16h06
  5. recupération d'un résultat de calcul
    Par Toff !!!!! dans le forum Access
    Réponses: 3
    Dernier message: 17/09/2005, 16h53

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