On retrouve également getch() avec un comportement similaire à dans curses et les implantations ncurses (unixoïde) ou PDCurses (multi-plateformes).
Thierry
Version imprimable
bonsoir tout le monde :
je suis toujours en train de chercher c'est que le programme se compile malgré
les warnings mais je puis paraitre bête mais le cours de référence me dit :
donc suivant le message d'erreur 6500000000>1.7 * 10 puissance 308. ???Code:
1
2
3
4
5
6 Nom du type Nombres stockables char -128 à 127 int -2 147 483 648 à 2 147 483 647 long -2 147 483 648 à 2 147 483 647 float -3.4 x 10 puissance 38 à 3.4 x 10 puissance 38 double -1.7 x 10 puissance 308 à 1.7 x 10 puissance 308
un expert pourrait m'éclairer.
(c'est dingue mais ça fait plus de six jour qu'un problème à l'apparence bénigne me tourmente).
merci d'avance.
Hio,
Montre-nous où en est exactement ton programme, et le(s) message(s) et warning(s) obtenus, sinon il nous va falloir jouer aux devinettes. :)
bonsoir
mon programme se trouve sur la page précédente j'ai simplement changé %ld
par %lf car c'est un double.
bonsoir
pardon droggo voici le lien c'est plus simple http://www.developpez.net/forums/sho...08#post2638008
:D
voila voilu.
Tu fais ça sur un DSP 56156, ça donne 1 et tu n'es pas bien avancé...
Ca, c'est la bonne méthode. Il faut raisonner en plage de valeurs et non en taille d'objet...Citation:
De plus pour connaitre la taille que le type peut contenir tu as des constantes définies dans limits.h et float.h
http://en.wikipedia.org/wiki/Limits.h
http://en.wikipedia.org/wiki/Float.h
Attention ! Les valeurs que tu indiques sont celles d'une implémentation particulière du C. J'indique ici :
http://emmanuel-delahaye.developpez.com/init_c.htm#type
les valeurs minimales garanties par le langage C.
Les valeurs de ton implémentation sont dans <limits.h> et <float.h>, comme déjà indiqué.
Pour ton problème, tu dois utiliser le type qui correspond à tes besoins. float et double conviennent. Il faut cependant garder en tête que l'usage de types réels (float et double) implique des approximations, car toutes les valeurs ne sont pas représentables sous la forme binaire 'virgule flottante' (signe, mantisse, exposant).
bonjour
je ne sais si j'ai dérapé quelque part mais il semblerait que float soit moi précis que double serait
ce faux si on préfère double à float car don mon code en mettant double au lieu de float j'obtiens
tout autre chose :
il m'affiche "vous avez 6500000000.000000 dirhams en banque"Code:
1
2
3
4
5
6
7
8
9
10 #include <stdio.h> #include <stdlib.h> main() { double soldeBanque = 6500000000.0 ; printf("vous avez %f dirhams en banque\n", soldeBanque); return 0; }
alors qu'avec float :
il m'affiche "vous avez 6499999744.000000 dirhams en banque"
quelqu'un pour m'explique ce qui ce passe dans cette mémoire ou plutot le fonctionnement de float/double.
y aurait il également une méthode pour éliminer les zéros après la virgule tout en gardant double comme type car dans mon cas il s'agit bien d'un entier.
merci à toute les personnes qui ont répondue à mes nombreuses questions
de débutant.:king:
je commence à comprendre d'où le résultat inexacte affiché par le format float.Citation:
Emmanuel Delahaye a ditCitation:
Pour ton problème, tu dois utiliser le type qui correspond à tes besoins. float et double conviennent. Il faut cependant garder en tête que l'usage de types réels (float et double) implique des approximations, car toutes les valeurs ne sont pas représentables sous la forme binaire 'virgule flottante' (signe, mantisse, exposant).
Hum, je suppose que le français n'est pas ta langue maternelle, mais arrives tu à relire cette phrase et à la comprendre ? Je rappelle qu'il existe 2 éléments importants de la compréhension d'un texte écrit :
- La capitalisation
- La ponctuation.
(et je ne parle pas de l'orthographe...)
Après hésitations, j'en arrive à :
"Je ne sais si j'ai dérapé quelque part mais il semblerait que float soit moi précis que double. Serait ce faux si on préfère double à float car don mon code en mettant double au lieu de float j'obtiens tout autre chose ?"
Ou encore...
"Je ne sais si j'ai dérapé quelque part mais il semblerait que float soit moins précis que double. Serait-ce faux si on préfère double à float car dans mon code en mettant double au lieu de float j'obtiens tout autre chose ?"
Effectivement, la précision est meilleure avec les double. Les float sont une version 'courte' des double, parfois utile quand on a un gros tableau. La réduction de précision est parfois le prix à payer pour gagner de la place...Citation:
il m'affiche "vous avez 6500000000.000000 dirhams en banque"Code:
1
2
3
4
5
6
7
8
9
10 #include <stdio.h> #include <stdlib.h> main() { double soldeBanque = 6500000000.0 ; printf("vous avez %f dirhams en banque\n", soldeBanque); return 0; }
alors qu'avec float :
il m'affiche "vous avez 6499999744.000000 dirhams en banque"
quelqu'un pour m'explique ce qui ce passe dans cette mémoire ou plutot le fonctionnement de float/double.
Mais d'une manière générale et surtout dans les calculs, on utilise double.
"%.0f" ou "%g"Citation:
y aurait il également une méthode pour éliminer les zéros après la virgule tout en gardant double comme type car dans mon cas il s'agit bien d'un entier.
Toutes ces questions sont basiques et trouvent leurs réponses dans n'importe quel livre ou tutoriel de C... Il y a des références sur ce site (et le mien...)Citation:
merci à toute les personnes qui ont répondue à mes nombreuses questions
de débutant.
Bonsoir
En effet Emmanuel Delahaye le français n'est pas ma langue maternelle et j'en suis fier,ça n'est pas pour t'offenser mais je connais la ponctuation,ça n'est pas la mer à boire seulement voilà, des fois j'écris rapidement faute de temps,normale je bosse 8 des fois jusqu'à 10 heures pour financer mes études ,en posant mes messages sur un tel forum j'espérais de l'aide et non des remarques à tout bout de champs.
Ceci d'une part,d'autre part je ne pense pas que l'expression française me fasse défaut d'ailleurs j'arrive à exprimer mes idées parfaitement bien je ne pense pas que vous puissiez faire de même en parlant ma langue et si vous arrivez un prononcer une seule phrase correctement je vous tire mon chapeau bas pour saluer cette performance.
je parle trois langues, à mon âge c'est déjà pas mal et je remercie dieu que je parle l'arabe car les autres langues (le français en l'occurrence) paraissent comme des amuse-gueule je parle en connaissance de cause puisque je parle français depuis l'âge de 3 ans .
je dirais plutôt :Citation:
Toutes ces questions sont basiques et trouvent leur réponse dans n'importe quel livre ou tutoriel de C... Il y a des références sur ce site (et le mien...)Citation:
Emmanuel Delahaye
Toutes ces questions sont basiques et trouvent leurS réponseS .....
vous êtes administrateur et vous pouvez me bannir pour punir mon franc parler, si ça vous tente faites le,mais épargnez moi ce genre de commentaires je n'en ai pas besoin, mon père ma toujours dit ''on peut dire à quelqu'un merde d'une façon poli sans que cela ne le gène'' inspirez vous en et balayons devant nos portes avant d'aller balayer chez les autres.
C'est de bonne guerre !
Merci pour la correction, toujours acceptée avec le sourire, surtout compte tenu de mon niveau dramatique en orthographe (mais au moins, j'essaye de me relire et de me corriger...)
N'oublie pas quand même que tu as eu des réponses à tes questions...
bonsoir
avec cœur joie j'accepte toutes les remarques ,(je fais gaffe au clavier :lol: ) c'est vrai j'ai eu réponse à mes (nombreuses) questions et je n'ai eu cesse de remercier lecteurs, car il ne faut pas être ingrat envers les gens et je le redis mille mercis à toi et à toutes les personnes qui ont daigné m'aider et me transmettre leur savoir si chèrement obtenu :king:
prends soin de toi et encore une fois merci pour cette inestimable aide :salut:
Bonjour
je vous assure, s'il analyse mon code il trouvera plus de fautes que de lignes justes :lol:
mais bon tout le monde est sujet à faire des erreurs, faisons un trait sur le passé.
Je ne peux que respecter Emmanuel Delahaye ainsi que toute personnes offrant son savoir aux gens, soyez en sûrs ce que je lis sur ce forum m'aide
vraiment à avancer.
encore une foi merci tout le monde.
(inchallah je reviendrais pour d'autres questions :yaisse2:)