Pouvez-vous autour d'une valeur à 2 chiffres après la virgule dans C?
Je suis pour calculer le volume d'une chambre et j'ai obtenu un numéro à 6 chiffres après la virgule. Je me demandais si je peux réduire la valeur à 2 chiffres après la virgule. Le nombre qui en résulte pour le volume est de 5 différentes variables, dont je ne sais pas si c'est important dans cette situation.
Est-il pour l'affichage, comme un
printf("%2f", var);
?OriginalL'auteur johnfis12 | 2014-01-29
Vous devez vous connecter pour publier un commentaire.
@Rashmi solution fournit un bien arrondis affichage d'une valeur à virgule flottante.
Il ne change pas la valeur du nombre original.
Si l'on veut autour d'une valeur à virgule flottante la plus proche
0.01
utilisationround()
Notes:
Utilisation
roundf()
pourfloat
.En raison de FP limites, l'arrondi de la valeur ne peut pas être exactement un multiple de
0.01
, mais sera plus proche de FP nombre une plate-forme donnée permet.round
pourrait augmenter, lorsque le résultat souhaité serait une baisse.Postpischil je suis d'accord avec ce point. Peut-être
modf()
peut aider? Je vais cogiter sur votre idée.OriginalL'auteur chux
Vous pouvez utiliser printf("%.2f", 20.233232)
printf()
peut donner des résultats différents sur les différents systèmes. Par exemple, gcc utilise l'Arrondi, mais pas MSVC 2010.OriginalL'auteur Rashmi
Il y a peut être une fonction round() flottant (ha ha) quelque part dans certains de la bibliothèque math (je n'ai pas de C ref sous la main). Sinon, un rapide et sale méthode serait de multiplier le nombre par 100 (décalage du point décimal à droite par 2), ajouter 0,5, tronquée en entier, et diviser par 100 (décalage du point décimal à gauche par 2).
OriginalL'auteur Phil Perry
La valeur à virgule flottante
0.01
ne peuvent pas être exprimées dans la norme IEEE 754, afin d'obtenir plus de décimales que vous avez demandé.Meilleure Façon: il suffit de ne pas affichage le supplément de décimales dans votre programme. Je doute que vous êtes "se" 6 décimales; il pourrait être la valeur par défaut pour un simple
Si oui, utiliser
%.2f
à afficher.Légèrement Pire Façon, en fonction de la gamme numérique et le genre de calculs que vous allez faire: multiplier les flotteurs par 100, ronde, et de les stocker sous forme d'entier. 100.00% garanti que vous obtiendrez seulement à deux chiffres de précision. Attention lors de la division (vous aurez lâche 2 chiffres si pas fait attention) et de multiplication (vous aurez gain 2).
OriginalL'auteur usr2564301