Текущее решение
dp <- 2 sprintf(paste0("%.", dp, "f"), 0.123)
Раствор с надеждой не имеет paste0 () и похож на
sprintf("%.{%2$d}f", 0.123, 2L)
За исключением того, что это работает.
Некоторые другие возможности:
# option 1 prettyNum(0.123, digits = dp) # option 2 formatC(0.123, digits = dp, format = 'f')
Вы можете использовать * для вставки dp в формат.
*
dp
dp <- 2 sprintf("%.*f", dp, 0.123) # [1] "0.12"