Erreur de formatage: le format spécifie le type ‘int’ mais l’argument a le type ‘double’

Je ne sais pas pourquoi cela ne comstack pas. Une idée?

C’est assez simple et j’ai passé toute ma vie à le regarder et je n’arrive pas à comprendre ce qui ne va pas.

#include  #include  void euroToDollar(double euro); int main() { double europrice1 = 1.00; euroToDollar(europrice1); return 0; } void euroToDollar(double euro){ double dollar = euro * 1.11; printf("EUR%.2d = USD%.2d" ,euro, dollar); return; } 

Le message d’erreur:

 Basic.c:24:39: error: format specifies type 'int' but the argument has type 'double' [-Werror,-Wformat] printf("EUR%.2d = USD%.2d" ,euro, dollar); ~~~~ ^~~~~~ %.2f 2 errors generated. 

Dans votre code, vous devez changer

 printf("EUR%.2d = USD%.2d" euro, dollar); 

à

 printf("EUR%.2f = USD%.2f", euro, dollar); 

Remarquez deux changements

  1. Ajouté le , comme requirejs par la syntaxe printf() .
  2. double doit être imprimé avec le spécificateur de format %f . L’utilisation d’un type d’argument incorrect appelle un comportement indéfini .

Vous manquez une virgule.

 printf("EUR%.2f = USD%.2f" euro, dollar); 

Devrait être

 printf("EUR%.2f = USD%.2f", euro, dollar);