I have noticed that in R 2.5.0, no method of textual output will print a "double" mode quantity with more than 15 digits after the decimal point. From the help page (?print.default) it appears that this is intentional, since digits after the fifteenth may be uncertain. However, fifteen digits after the decimal point are not enough to represent all the values that an IEEE-double can take. (You need one more.) This means it is now impossible to write out data in textual format (e.g. in order to manipulate it with another program) and read back in exactly the same values. Some analyses are sensitive to this sort of extra rounding, especially if it happens repeatedly.
I'd really appreciate some way of forcing R to print enough digits to represent every possible IEEE double value. I would also argue that this should be the default behavior of dump(), write.table() and friends, and save(...,ascii=TRUE), to prevent data loss. [Tangentially, support for C99 hexadecimal notation for floating point values in input and output would also be nice, but wouldn't help much for interoperability, since very few programs understand it.] zw ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel