J'essaie de permettre à mon programme d'arrondir un nombre respectivement de haut en bas.
Par exemple, si le nombre est 3.6
, Mon programme est supposé arrondir le nombre le plus proche qui est 4 et si le nombre est 3.4
, Il sera arrondi à 3.
J'ai essayé d'utiliser la bibliothèque ceil
pour obtenir la moyenne de 3 éléments.
results = ceil((marks1 + marks2 + marks3)/3)
Cependant, le ceil
arrondit uniquement le nombre vers le bas mais ne le fait pas remonter.
Il y a 1 algorithme sur lequel je suis tombé
var roundedVal = Math.round(origVal*20)/20;
mais je ne peux toujours pas trouver de formule pour un problème.
std::ceil
arrondit à l'entier le plus proche
std::floor
arrondit à l'entier le plus proche
std::round
effectue le comportement que vous attendez
veuillez donner un cas d'utilisation avec des chiffres si cela ne vous fournit pas ce dont vous avez besoin!
La fonction dont vous avez besoin s'appelle round , croyez-le ou non.
ceil
arrondit vers le haut, btw. C'est-à-dire, au plus grand entier le plus proche. floor
arrondit vers le bas.
std::round
peut être celui que vous recherchez. Cependant, gardez à l'esprit qu'il renvoie un flotteur. Vous pouvez essayer lround
ou llround
pour obtenir un résultat en long ou en long long (C++ 11).
Vous n'avez pas besoin d'une fonction pour arrondir en C ou C++. Vous pouvez simplement utiliser une astuce simple. Ajoutez 0,5, puis convertissez-le en un entier. C'est probablement tout ce que l'on fait de toute façon.
double d = 3.1415;
double d2 = 4.7;
int i1 = (int)(d + 0.5);
int i2 = (int)(d2 + 0.5);
i1 vaut 3 et i2 vaut 5. Vous pouvez le vérifier vous-même.