On Wed, 29 Jan 2003, Ott Toomet wrote: > I want to print real numbers in C code with different values for > digits. How to do that?
Use Rprintf or PrintValue. You'll need to work hard to convince me that Rprintf is not adequate. > As I have understood, what I should do is to call > > StringFromReal() That's a coercion, not a printing routine. > which calls FormatReal(), that one suggests the parameters (width, > decimal places and exponential form). FormatReal() includes > > eps = pow(10.0, -(double)R_print.digits); > > So I guess I have to change the value of R_print.digits. > R_print.digits is defined in include/Print.h in the package source, > but unfortunately the installed version (in /usr/lib/R/include/R_ext) is > quite a different. R_ext/Print.h and Print.h are not the same thing: one is not a version of the other. The routines you mention are not documented in R-exts, and are not part of the API. > I guess that is because the structure is not meant > to be accessible by user, although some system routines alter > R_print.digits directly. (Only the coercion and print routines!) > So are there any good way to achieve it? Temporarily change the options(digits) and call PrintValue(). You are not meant to (and it is not safe to) mess with R's printing internals, and these structures change even at patch releases. -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ [EMAIL PROTECTED] mailing list http://www.stat.math.ethz.ch/mailman/listinfo/r-help