Variable double

Résolu
lamouchetsetse Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   -  
 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:

#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:

3 réponses

Utilisateur anonyme
 
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
    double varDouble = (double)varInt;

C'est ce qu'on appelle un cast -> une conversion implicite d'un type vers l'autre.
1
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
une conversion implicite d'un type vers l'autre
Sur le coup, ton cast est explicite plutôt que implicite. Il serait implicite si tu ne précisais pas de type de cast devant
varInt
.
0
Utilisateur anonyme > ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention  
 
Ha oui tout à fait, boulette de ma part!
0
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Il ne faut pas confondre un nombre et sa représentation.
Si j'écris
varDouble = 10;
varDouble = 10.000000;
varDouble = varInt;
varDouble = - 2 * - 5;
J'ai fait 4 fois la même chose et
varDouble
contient 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
0
lamouchetsetse Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   2
 
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.
0