75 votes

Garder les zéros de queue

Je voudrais conserver les zéros de fin, par exemple, si je tape :

round(5.2, 3)

Je voudrais que la sortie soit :

5.200

97voto

Chase Points 27342

Si c'est à des fins d'impression, sprintf est ce que vous recherchez :

> sprintf("%.3f", round(5.2,3))
[1] "5.200"

Ver ?sprintf pour les détails de formatage.

3 votes

@Chase : Est-il possible de sortir une valeur numérique au lieu d'un caractère ???

5 votes

@Marco : Je pense que non, une valeur numérique n'a pas de zéros de fin.

0 votes

@Marco 5.2 == 5.200 il s'agit du même nombre, la seule différence est la façon dont le nombre est représenté sous forme de chaîne.

63voto

tim_yates Points 63521

Lorsque vous l'imprimez, vous devriez pouvoir le faire :

formatC( round( 5.2, 3 ), format='f', digits=3 )

0 votes

Merci. Je suis désolé, je ne peux pas accepter plus d'une réponse. J'ai choisi d'accepter la précédente puisque Chase a un score de réputation inférieur. Cependant, votre solution est également très bonne. Je vous remercie encore une fois !

0 votes

Que diriez-vous de quelque chose qui fonctionne à la fois pour l'impression et la non-impression ?

1 votes

Je ne comprends pas ce que tu veux dire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X