J'ai besoin de faire un arrondi comme celui-ci et de le convertir comme un caractère: Je m'attends à devenir est là quand même que je peux le rendre montrant 6.00 code>, mais cela me donne simplement
6 code> p>
6.00 code>? P> p>
3 Réponses :
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
Pour aider à expliquer ce qui se passe - le rond (5.9999, 2) code> L'appel est arrondi votre numéro à la place la plus proche, ce qui vous donne le numéro numéro em> (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 () code> regarde ce numéro, prend jusqu'à 15 chiffres significatifs de celui-ci (voir
? AS.Character code>) 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. P>
As Dirk Indiqué, FormatC () est une autre option. p>
formatc (x = 5,999, chiffres = 2, format = 'f') p>