problemes de divisions = résultats erronés. - C - Programmation
Marsh Posté le 07-03-2004 à 00:45:12
10 est un entier
3 est entier
10 / 3 est donc la division entière
10/3 == 3
10.0 / 3.0 ... raisonnement similaire -> division flottante
10.0 / 3.0 == 3.333333...
Marsh Posté le 07-03-2004 à 02:35:00
c'est assez genant dans ce cas
enfin c'est une habitude a prendre que de rajouter des zeros derriere...
mais quand je dois diviser un entier a par un entier b, je fais comment? je vois mal comment integrer de casting dans une division?!
(j'ai meme eu une erreur a la compil en faisant c=(float *)a/b;
en tous cas merci de la précision
Marsh Posté le 07-03-2004 à 13:35:40
sky99 a écrit : c'est assez genant dans ce cas |
ben non, c'est mathématiques et c'est sémantiquement correct
Marsh Posté le 07-03-2004 à 13:41:29
Taz a écrit : ben non, c'est mathématiques et c'est sémantiquement correct |
c surtout pour des raisons de performance, si tu nindique rien il te fait une division entiere (plus rapide) commme ca il n'y a que les cas ou yen a vraiment besoin que c'est appliqué
Marsh Posté le 07-03-2004 à 13:47:49
je crois vraiment pas que la performance entre en ligne de compte
Marsh Posté le 08-03-2004 à 23:29:31
si les .0 te fatiguent tu peux te contenter du point. tu peux même te contenter de mettre un point à un des deux termes. mais bon si tu veux un code lisible tu évites ce genre de blague
Marsh Posté le 15-03-2004 à 02:16:53
a vrai dire, c'est pas que ça me fatigue dans l'absolu, c'est juste qu'il a fallu rechanger tout le code précédent
m'enfin bon...
sinon, taz, je ne vois pas en quoi c'est mathematique...
en mathematiques 10/3 =10/3 et non3 :|
dans tous les cas, merci a tous
Marsh Posté le 15-03-2004 à 02:26:23
sky99 a écrit : a vrai dire, c'est pas que ça me fatigue dans l'absolu, c'est juste qu'il a fallu rechanger tout le code précédent |
Dans les entiers rationnels oui, dans les entiers naturels, non.
A+,
Marsh Posté le 07-03-2004 à 00:42:40
Bonjour a tous.
J'ai aujourdhui un probleme avec des divisions.
en effet, le programme suivant :
m'affiche "3.00000".
Or 10/3=3.3333333...
je compile mon programme avec gcc 3.3.1 via la commande
gcc -o nom_prog nom_source.c et je l'execute tout aussi classiquement via ./nom_prog
j'ai du mal a saisir ou est le progleme, et pourquoi je n'arrive
pas a obtenir autre chose que des troncatures dans mes résultats...
---------------
http://www.core-tx.com