Précédent   Forum du club des développeurs et IT Pro > C et C++ > C > Débuter
Débuter Forum d'entraide pour débuter en langage C. Avant de poster -> FAQ C
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/01/2013, 19h16   #1
Glork
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 34
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 34
Points : 11
Points : 11
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.
Glork est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 19h28   #2
plxpy
Membre émérite
 
Avatar de plxpy
 
Homme
Ingénieur
Inscription : janvier 2009
Messages : 494
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

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

Informations forums :
Inscription : janvier 2009
Messages : 494
Points : 893
Points : 893
teuteuteu : un modulo par rapport à un double ?
plxpy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 20h09   #3
Glork
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 34
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 34
Points : 11
Points : 11
aaahhhh ok
Merci!
Et le (int) signifie qu'il faut prendre la partie entière dans : (int) (1/3) par exemple ?
Glork est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 20h22   #4
Kirilenko
Membre émérite
 
Avatar de Kirilenko
 
Homme Lucas Pesenti
Étudiant
Inscription : décembre 2011
Messages : 234
Détails du profil
Informations personnelles :
Nom : Homme Lucas Pesenti
Âge : 16
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 : 859
Points : 859
Envoyer un message via MSN à Kirilenko
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
Kirilenko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 21h56   #5
Sve@r
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 495
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 45
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 : 3 495
Points : 6 604
Points : 6 604
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
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h45.


 
 
 
 
Partenaires

Hébergement Web