Variable double
Résolu
lamouchetsetse
Messages postés
112
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Boujour à tous, je m'initie au langage c et je but sur un petit probleme.
Voila, j'ai une variable de type int et une de type double et j'aimerais que ma viariable double soit égal à la int comme ceci:
comme vous le voyez, je fait suivre ma variable "varInt" d'un .0 afin que "varDouble" soit = 10.0 et non 10.
Cependant le compilateur semble ne pas aimer cette syntaxe et me renvoi un erreur.
Comment puis-je donc faire pour avoir un résultat correct en construisant une variable double à partir d'une variable int?
Merci à tous.
Voila, j'ai une variable de type int et une de type double et j'aimerais que ma viariable double soit égal à la int comme ceci:
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int varInt = 10; double varDouble = varInt.0; printf("varDouble = %f", varDouble); return 0; }
comme vous le voyez, je fait suivre ma variable "varInt" d'un .0 afin que "varDouble" soit = 10.0 et non 10.
Cependant le compilateur semble ne pas aimer cette syntaxe et me renvoi un erreur.
Comment puis-je donc faire pour avoir un résultat correct en construisant une variable double à partir d'une variable int?
Merci à tous.
A voir également:
- Variable double
- Double ecran - Guide
- Whatsapp double sim - Guide
- Double driver - Télécharger - Pilotes & Matériel
- Double appel - Guide
- Double boot - Guide
3 réponses
Bonsoir,
non ça ne marche pas comme ça.
Quand tu écris 10.0, le compilateur interprète qu'il s'agit d'un nombre.
Quand tu écris varInt, le compilateur interprète qu'il s'agit du nom d'une variable, et "il trouve" cette variable.
Quand tu écris varInt.0, là le compilateur ne comprends pas.
Pour ta solution, pas sûr de moi mon C est plus que rouillé, mais je pense que c'est
C'est ce qu'on appelle un cast -> une conversion implicite d'un type vers l'autre.
non ça ne marche pas comme ça.
Quand tu écris 10.0, le compilateur interprète qu'il s'agit d'un nombre.
Quand tu écris varInt, le compilateur interprète qu'il s'agit du nom d'une variable, et "il trouve" cette variable.
Quand tu écris varInt.0, là le compilateur ne comprends pas.
Pour ta solution, pas sûr de moi mon C est plus que rouillé, mais je pense que c'est
double varDouble = (double)varInt;
C'est ce qu'on appelle un cast -> une conversion implicite d'un type vers l'autre.
ElementW
Messages postés
4814
Date d'inscription
Statut
Contributeur
Dernière intervention
1 223
Utilisateur anonyme
>
ElementW
Messages postés
4814
Date d'inscription
Statut
Contributeur
Dernière intervention
Ha oui tout à fait, boulette de ma part!
Il ne faut pas confondre un nombre et sa représentation.
Si j'écris
Si j'écris
varDouble = 10; varDouble = 10.000000; varDouble = varInt; varDouble = - 2 * - 5;J'ai fait 4 fois la même chose et
varDoublecontient le nombre 10. Et c'est au moment de l'affichage que l'on choisira les décimales à afficher.
printf( "varDouble = %f", varDouble ); // afficher avec 6 décimales au plus printf( "varDouble = %.1f", varDouble ); // afficher avec exactement une décimale
Merci à vous 2. Whismeril, ton c n'est pas si rouillé que ça.
Sinon on choisi ce qu'on affiche à l'affichage serte, mais l'affichage dépend des variables que l'on déclare, si on déclare un int alors on ne peu afficher qu'un int. Dans mon cas, j'avais un calcul à faire via une somme contenu dans une variable int, mais le résultat était décimal, il me fallait donc une variable double pour faire mon calcul.
Sinon on choisi ce qu'on affiche à l'affichage serte, mais l'affichage dépend des variables que l'on déclare, si on déclare un int alors on ne peu afficher qu'un int. Dans mon cas, j'avais un calcul à faire via une somme contenu dans une variable int, mais le résultat était décimal, il me fallait donc une variable double pour faire mon calcul.