+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Discussion: Problème de typage

  1. #1
    Membre à l'essai
    Inscrit en
    janvier 2011
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : janvier 2011
    Messages : 84
    Points : 21
    Points
    21

    Par défaut Problème de typage

    Bonjour,
    si on a:
    pourquoi l'expression (int) i %d est erronée ?

    i%d sera de type double et avec (int), il y aura troncature du résultat pour ne garder que la partie entière (?)
    Merci.

  2. #2
    Modérateur
    Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    janvier 2009
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : janvier 2009
    Messages : 640
    Points : 1 155
    Points
    1 155

    Par défaut

    teuteuteu : un modulo par rapport à un double ?

  3. #3
    Membre à l'essai
    Inscrit en
    janvier 2011
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : janvier 2011
    Messages : 84
    Points : 21
    Points
    21

    Par défaut

    aaahhhh ok
    Merci!
    Et le (int) signifie qu'il faut prendre la partie entière dans : (int) (1/3) par exemple ?

  4. #4
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : décembre 2011
    Messages : 234
    Points : 819
    Points
    819

    Par défaut

    Bonsoir,

    Citation Envoyé par Glork Voir le message
    aaahhhh ok
    Merci!
    Et le (int) signifie qu'il faut prendre la partie entière dans : (int) (1/3) par exemple ?
    En fait, ça dépend de tes opérandes. Si elles sont de type (à l'issue des conversions arithmétiques usuelles, évidemment) int, tu auras une division entière. Si elles sont de type double, tu auras une division flottante. Ici, le transtypage s'effectue *à la fin* de l'opération, et n'aura pas d'influence sur le type de division qui sera effectué. Si tu veux que ce soit le cas, il faut que tu transtypes les opérandes.

    Bonne soirée.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  5. #5
    Expert Confirmé Sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    4 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 4 751
    Points : 10 888
    Points
    10 888

    Par défaut

    Citation Envoyé par Kirilenko Voir le message
    Bonsoir,


    En fait, ça dépend de tes opérandes. Si elles sont de type (à l'issue des conversions arithmétiques usuelles, évidemment) int, tu auras une division entière. Si elles sont de type double, tu auras une division flottante. Ici, le transtypage s'effectue *à la fin* de l'opération, et n'aura pas d'influence sur le type de division qui sera effectué.
    Bonjour
    Petite précision: le calcul se fait dans la précision des opérandes utilisés par le calcul immédiat et non pas dans la précision de l'opération globale.
    Exemple: double d=5/2 + 1.0
    Le premier calcul fait d'après la priorité des opérateurs étant 5/2 n'utilise que des entiers et se fera donc dans le type entier et donnera 2. Ensuite, ce 2 sera ajouté au double 1.0 et donnera 3.0.
    Alors que cet exemple: double d=5/2.0 + 1 donnera 2.5 + 1 soit 3.5...
    Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
    Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
    Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
    Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
    Dr. Adrian Rogers (1931-2005)

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •