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.

3 réponses

  1. 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
    1. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      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
      1. Utilisateur anonyme > ElementW Messages postés 5690 Statut Contributeur
         
        Ha oui tout à fait, boulette de ma part!
        0
  2. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     
    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
  3. 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