-3
votes

C arrondie flotter

J'ai du flotteur, comme: 7.66, 4.26 897.18 ...

Je veux les arrondir jusqu'au entier supérieur: xxx

Comment dois-je Faites ça?

Merci!


1 commentaires

Si, pour une raison quelconque, vous ne voulez pas utiliser ceil , vous pouvez essayer d'ajouter 1, puis tronquer à int , mais vous devez avoir un cas spécial pour détecter le cas où votre numéro d'origine n'avait pas de partie fractionnaire.


3 Réponses :


3
votes

Vous pouvez utiliser le CEIL fonction de la fonction de math.h


1 commentaires

Merci. Mais j'ai besoin que le flotteur soit arrondi allumé. Même 2.00007 est devenu 3.



3
votes

Utilisez ceil ou CEILF dans math.h . Les signatures sont xxx

et xxx

jettent le résultat à un type intégré si nécessaire, prenant des mesures pour vous assurer de ne pas trop déborder que Type (qui est une raison pour laquelle les types de retour de CEIL et CEILF sont identiques au type d'entrée).


2 commentaires

Merci. Mais j'ai besoin que le flotteur soit arrondi allumé. Même 2.00007 est devenu 3.


@ Hormir: C'est ce qui se passe. N'as-tu pas essayé?



3
votes

Vous pouvez simplement faire ce qui suit:

#include <stdio.h>
#include <math.h>
int main()
{
   double num = 6.87;
   int result;
   result = ceil(num);
   printf("Ceiling integer of %.2f = %d", num, result);
   return 0;
}


6 commentaires

Soyez prudent avec cette conversion sur int comme c'est vulnérable au débordement.


@Bathsheba Vous avez complètement raison, cet extrait est seulement de lui montrer la méthode; Les gardes et le chèque sont essentiels toujours


@Stevesummit en effet sa option également valable, n'était pas mon aller à répondre, mais cela fonctionnera; Je pense que votre type de réponse pourrait confondre le programmeur nouveau à c


@Davids Désolé, voulait commenter la question initiale, pas votre réponse.


Merci. Mais j'ai besoin que le flotteur soit arrondi allumé. Même 2.00007 est devenu 3.


@Tor c'est exactement ce que ceil () fait, il arrondit au plus proche du sommet du haut