Est-il possible d'arrondir un double en utilisant simplement une instruction printf?

Évidemment, ce n'est qu'une partie du code.

printf("Please enter a positive number that has a fractional part with three or more decimal places\n");
scanf("%5.2d", &x);
printf("The number you have entered is %5.2d\n" ,x);

Serait-ce arrondir automatiquement le nombre de type I dans? Ou est-il une autre façon de le faire?

Edit:

printf("Please enter a positive number that has a fractional part with three or more decimal places\n");
scanf("%lf", &x);
x = x + 0.05;
printf( "The number you have entered is %5.2lf\n", x);

Iv fait cela, mais Im prenant en considération ce que quelqu'un avait dit à propos de printf juste "changer" la façon dont il lit. Donc, ce n'est évidemment pas de la bonne façon. Je devrais peut-être mettre en œuvre la fonction pow ()? Cela fonctionne avec ce en quelque sorte?

Edit2:

printf("Please enter a positive number that has a fractional part with three or more decimal places\n");
scanf("%lf", &x);
x = x + 0.05;
printf( "The number you have entered is %5.2lf\n", x);

Bon, iv arrivé au point où si je imput un nombre, il va s'arrondir à un nombre entier. 35.21 seront tour à 35, et 35.51 seront tour à 36 et. etc.

Comment aurais-je obtenir 35.2178 à tour de 35.22, et 35.2135 à tour de 35.21.
Comment aurais-je obtenir certains pouvoirs de la décimale à tour à la place du nombre entier?

  • Est x un int ou un double?
  • Je l'ai essayé, et il ne fonctionne que de temps en temps. Est-il une autre façon d'aller à ce sujet? Je suis relativement nouveau à C.
  • X est un double dans ce
  • Ensuite, vous ne devriez pas avoir dit que c'était un nombre entier. Ou vouliez-vous dire "arrondir à un nombre entier"?
  • Je ne comprends pas, où ai-je dis que c'est un entier? N' %d de ne pas travailler avec cela?
  • %d est pour un entier. Où avez-vous appris qu'il était pour les doubles? Peut-être que vous devriez regarder dans une référence ou d'un livre.
  • Vous ne pouvez pas utiliser %.2f avec scanf.
  • La chaîne de format de scanf() est différent de celui de printf(). L'un dans ton exemple est tout simplement faux. Pour lire un double à partir de stdin, utiliser scanf() avec "%lf" chaîne de format, puis arrondir le nombre de la manière que vous préférez.
  • oui mais comment l'arrondi se produire? En utilisant %5.2 lf?
  • je suis perplexe =x

InformationsquelleAutor Chandler | 2009-09-30