如何制作“漂亮的圆角”?

9
我需要进行四舍五入,并将其转换为字符格式:
as.character(round(5.9999,2))

我期望它显示为6.00,但它只显示6

有没有办法让它显示6.00

3个回答

11

尝试使用以下任意一种方法:

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

还有formatC()prettyNum()


2
为了帮助解释这段代码,round(5.9999, 2)函数将你的数字四舍五入到最近的百分位,得出一个非常接近于(或者是由于浮点数表示的运气好而恰好等于)6.00的数字(而不是字符串)。然后as.character()函数查看该数字,取其15个有效数字(请参阅?as.character),以便对其进行足够精确的表示,并确定仅需要1个有效数字。因此你得到的结果就是这样的。

-1
如Dirk所指出的,formatC()是另一种选择。
formatC(x = 5.999, digits = 2, format = 'f')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接