9
votes

Comment faire "jolie arrondi"?

J'ai besoin de faire un arrondi comme celui-ci et de le convertir comme un caractère: xxx

Je m'attends à devenir 6.00 , mais cela me donne simplement 6

est là quand même que je peux le rendre montrant 6.00 ?


0 commentaires

3 Réponses :


11
votes

Essayez l'un ou l'autre de ces:

> sprintf("%3.2f", round(5.9999, digits=2))
[1] "6.00
> sprintf("%3.2f", 5.999)  # no round needed either
[1] "6.00


0 commentaires

2
votes

Pour aider à expliquer ce qui se passe - le rond (5.9999, 2) L'appel est arrondi votre numéro à la place la plus proche, ce qui vous donne le numéro numéro (pas de chaîne ) Très proche de (ou exactement égal à, si vous avez de la chance avec des représentations de points flottants) 6.00. Alors as.character () regarde ce numéro, prend jusqu'à 15 chiffres significatifs de celui-ci (voir ? AS.Character ) afin de le représenter une précision suffisante, et détermine que seul 1 chiffre significatif est nécessaire. C'est ce que vous obtenez.


0 commentaires

-1
votes

As Dirk Indiqué, FormatC () est une autre option.

formatc (x = 5,999, chiffres = 2, format = 'f')


0 commentaires