J'ai un nombre flottant en C++ et le nombre peut être sous différentes formes, par ex. 355.5 ou 9.9 (c'est l'entrée du code de test).Arrondir des nombres à virgule flottante en C++ à une décimale
J'ai une fonction qui est
float return_max(angle_set_t *angles)
{
float val;
float max;
max= angles->key;
while(angles != NULL)
{
val= angles->key;
if(max<=val)
{
max=val;
}
angles = angles->right;
}
return max;
}
max
peut être une valeur flottante. Je veux arrondir la valeur à une décimale.
je besoin d'une solution générale il travaille pour 355,555555 et 9,999999
float first_aset()
{
//do somethig
result=return_max();
return result;
}
void main()
{
if(first_aset(S, 357.0, 20.0) != 9.9 ||
first_aset(T, 357.0, 20.0) != 9.9)
{
printf("Error in wrap-around interval (3)\n");
printf(" first in interval [357, 20) in S is %f, should be 9.9\n",
first_aset(S, 357.0, 20.0));
printf(" first in interval [357, 20) in T is %f, should be 9.9\n",
first_aset(T, 357.0, 20.0));
}
}
ici est le résultat problem..the est:
erreur dans wrap-around intervalle (3)
première dans l'intervalle [357, 20) en S est 9,900000, devrait être 9,9
première dans l'intervalle [357, 20) en T est 9 0,900000, devrait être 9,9
Avez-vous besoin d'arrondir la valeur à afficher à l'utilisateur, ou allez-vous effectuer d'autres calculs qui nécessitent que la valeur soit arrondie? Avez-vous une stratégie d'arrondi spécifique à l'esprit? (Il y a plus d'une façon d'arrondir un nombre.) –
calculs supplémentaires – abbas
Pourquoi pensez-vous que l'arrondi est une bonne idée ici? Quelle est la signification de "un chiffre décimal" dans ce cas? Pourquoi ne pas simplement vivre avec la précision supplémentaire et être heureux à ce sujet? – fredoverflow