Variable double

Résolu/Fermé
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 - 1 sept. 2018 à 19:19
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 3 sept. 2018 à 21:53
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

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
1 sept. 2018 à 19:58
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 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
3 sept. 2018 à 21:08
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
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929 > ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021
3 sept. 2018 à 21:53
Ha oui tout à fait, boulette de ma part!
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
1 sept. 2018 à 23:29
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 samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 2
2 sept. 2018 à 01:47
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