float = (int+int)/2
Avec la division de nombres réels.
ou
int = floor(float)
Me débarrasser de la partie décimale en quelque sorte.
Mais comme une variable est une variable, comment faire ça proprement ?
En cherchant j'ai entendu parler du "Cast" mais je n'ai pas trouvé de tuto qui explique vraiment comment ça marche ...
Fonctionne aussi =)
L'important est qu'un des deux opérandes soit un flottant pour que l'autre soit convertit.
Citation : Norme
if the corresponding real type of either operand is float, the other
operand is converted, without change of type domain, to a type whose
corresponding real type is float.
----
Citation : Camp0us
Si tu avais suivit mon petit discours sur les casts tu aurais pu corriger mon erreur
Tu n'as pas fait d'erreur =)
@Bvic: L'avertissement doit-être là juste pour signaler la possibilité que la partie entière du réel n'est pas forcément représentable par une int (dans ce cas là c'est un UB); mais ça, le cast ni change rien.
Ceci est vrai que la conversion soit causée par un cast ou par un assignment :
Citation : Norme
When a finite value of real floating type is converted to an integer type [...], the fractional part is discarded (i.e., the value is truncated toward zero). If the value of the integral part cannot be represented by the integer type, the behavior is undefined.)
Tu utilises la SDL ? Si c'est le cas, sache qu'un Uint8 n'est autre qu'un vulgaire unsingned char. Un entier, donc. Aucune raison que le compilateur fasse de lui-même un cast
Mais bon, après, si tu dois diviser par une constance comme dans ton exemple, autant utiliser une constante réelle :
Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention. Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé. Pour plus d'informations, nous vous invitons à lire les règles générales du forum
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)