当前解决方案是
dp <- 2
sprintf(paste0("%.", dp, "f"), 0.123)
希望的解决方案没有 paste0((,类似于
sprintf("%.{%2$d}f", 0.123, 2L)
除了它有效。
您可以使用*
将dp
插入到格式中。
dp <- 2
sprintf("%.*f", dp, 0.123)
# [1] "0.12"
从?sprintf
:
详情:
字段宽度或精度(但不能同时使用两者(可以用星号
*
表示:在这种情况下,参数指定所需的数字。
另请参阅示例:"使用星号表示宽度或精度";"星号和参数重用,重申'e'示例">
其他一些可能性:
# option 1
prettyNum(0.123, digits = dp)
# option 2
formatC(0.123, digits = dp, format = 'f')