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 de typage


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 84
    Points : 51
    Points
    51
    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
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    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 : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    teuteuteu : un modulo par rapport à un double ?
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 84
    Points : 51
    Points
    51
    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 éclairé
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Points : 807
    Points
    807
    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 éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    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...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/02/2007, 17h56
  2. problème de typage
    Par sissi25 dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 10/01/2007, 12h59
  3. [Typage] Problème avec typage de variables
    Par elitemedia dans le forum Langage
    Réponses: 2
    Dernier message: 17/11/2006, 02h18
  4. [Tableaux] Problème de typage sur un float
    Par Lomu dans le forum Langage
    Réponses: 1
    Dernier message: 06/11/2006, 11h47
  5. [SQL2005] problèmes de typage de colonne en XML
    Par titouc330 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/10/2006, 12h52

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