Я пытаюсь напечатать больше цифр в выводе с двойной точностью из функции Rcpp
, но не могу понять, как ... Я просмотрел How do I print a double value with full precision using cout? и в других местах для общих C++ ответ, но я не могу видеть, как сделать это в Rcpp
, за исключением использования printf
, которую я беру, чтобы быть последним средством ...увеличить точность в выходе с плавающей запятой Rcpp
require(inline)
code <- '
double x=1.0;
std::cout.precision(10); // compiles but does nothing
Rcpp::Rcout.precision(10); // compiles but does nothing
printf("(1) %1.10lf\\n",x); // works but bad practice
Rcpp::Rcout << "(2) " << x << std::endl;
Rcpp::Rcout << "(3) " << std::setprecision(10) << x << std::endl;
return Rcpp::wrap(0);
'
fun <- rcpp(sig=c(v=0),body=code,includes="#include <iomanip>")
fun(1)
## (1) 1.0000000000
## (2) 1
## (3) 1
## [1] 0
Добавлено это как проблемы в двух реализациях Rcpp я утверждаю: https://github.com/romainfrancois/Rcpp11/issues/67 https://github.com/romainfrancois/Rcpp98/issues/10 –