quand je fais une opération tel que 70 / 30 le résultat est automatiquement représentée en entier (2 pour l'exemple là), y aurait t-il une solution pour ça ?
"Bien plus que la taille, c'est le temps de traitement des opérations sur ces différents types qui les distingues. Float = peu précis, peu d'espace en mémoire, vitesse d'opération très rapide Double = moyen partout Décimal = très précis, beaucoup d'espace en mémoire, vitesse d'opération très très lente."
Ensuite je ne vois pas l'utilité de commencer ton calcul avec des doubles pour finir à le mettre en int.
Sinon la fonction est :
Convert.ToInt32(val);
Mais tu perds en information si le nombre est à virgule.
Merci Flingouin, en faite en ce moment je suis sur un projet qui s'intitule "Le jeu dont vous êtes le héros". Comme je pense tu l'as deviné, c'est un jeu interactif qui change l'histoire en fonction des choix que tu fais...
Et pour cela j'ai introduit un système d'attaque... mais qu'avec les nombres qui se mettent directement en int le résultat est totalement différent !!!
int systAtk = (70 / 30) * 50;
//SysAtk est égal à 100 (70 / 30 = 2, 2 * 50 = 100)
float sysAtk2 = (70.0 / 30.0) * 50;
//SysAtk2 est normalement égal à environ 116 et des brouettes
Comme ça je le transforme en int en enlevant les virgules et mon résultat sera plus précis...
Comme tu m'as dit :
Convert.ToInt32(val);
Si tu n'as pas tout compris je peux te donner un extrait de ma solution si tu veux.
Merci en tout cas.
Flingouin a écrit:
Salut,
Je tiens juste à mettre un point de précision sur ton calcul. S'il nécessite d'être précis ou non, cela demande différents type.
"Bien plus que la taille, c'est le temps de traitement des opérations sur ces différents types qui les distingues. Float = peu précis, peu d'espace en mémoire, vitesse d'opération très rapide Double = moyen partout Décimal = très précis, beaucoup d'espace en mémoire, vitesse d'opération très très lente."
Ensuite je ne vois pas l'utilité de commencer ton calcul avec des doubles pour finir à le mettre en int.
Sinon la fonction est :
Convert.ToInt32(val);
Mais tu perds en information si le nombre est à virgule.
et en changeant l'ordre de l'opération en (70*50)/30 ça devrait aussi être bon et éviter des conversions
Nombre à virgules infini
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Un bon dev est un dev qui sait Googler