根据标题,我需要一个字符串格式
sprintf(xxx,5) prints "5"
sprintf(xxx,5.1) prints "5.1"
sprintf(xxx,15.1234) prints "15.12"
即:没有前导零,没有尾随零,最多2位小数。
有可能吗?如果没有sprintf,还有其他方式吗?
用例是报告通常为整数的自由度,但在更正时,可能会产生小数 - 在这种情况下,我只想添加两位小数。)
答案 0 :(得分:2)
也许formatC
对此更容易:
formatC(c(5, 5.1, 5.1234), digits = 2, format = "f", drop0trailing = TRUE)
#[1] "5" "5.1" "5.12"
答案 1 :(得分:0)
基于sprintf
建议的解决方案:
sprintf("%.4g", 5)
#[1] "5"
sprintf("%.4g", 5.1)
#[1] "5.1"
sprintf("%.4g", 15.1234)
#[1] "15.12"
可以找到sprintf
的详细信息,例如在这里:http://www.cplusplus.com/reference/cstdio/printf/
其中说:
g |使用最短的表示形式:%e或%f
和
.number | ...对于g和G说明符:这是要打印的最大有效位数。