[R] Why does the print method fail for very small numbers?

Jeff Newmiller jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Fri Feb 18 01:27:25 CET 2022


In this case, that is too little too late. See the other messages in this thread.

On February 17, 2022 4:04:53 PM PST, Andrew Simmons <akwsimmo using gmail.com> wrote:
>It should also be noted that format(x, digits = 17) instead of
>as.character(x) won't lose any accuracy.
>
>On Thu, Feb 17, 2022, 17:41 Marius Hofert <marius.hofert using uwaterloo.ca>
>wrote:
>
>> Dear expeRts,
>>
>> I'm familiar with IEEE 754. Is there an easy way to explain why even
>> just printing of small numbers fails?
>>
>> 1e-317 # 1e-317 => fine
>> 1e-318 # 9.999987e-319 => gets tricky; seems to call print() =>
>> as.character() => format() => paste()
>> 1e-318 == 9.999987e-319 # TRUE
>> 2.48e-324 # prints 4.940656e-324 for me
>> 2.48e-324 == 4.940656e-324 # TRUE
>> ## Relative error as a plot
>> rel_error <- function(x)
>>     plot(abs((as.numeric(as.character(x)) - x) / x), type = "l",
>>          ylab = "Relative error between x and as.numeric(as.character(x))")
>> rel_error(seq(0.001, 0.001 + .Machine$double.xmin, length.out = 1001)) #
>> fine
>> rel_error(seq(0, .Machine$double.xmin, length.out = 1001)) # printing
>> breaks down
>>
>> Of course, [0,.Machine$double.xmin] is somewhat of a strange set of
>> numbers to consider,
>> and I expect things like "==" to be easily fooled there, but already the
>> print method (?)
>>
>> Thanks & cheers,
>> Marius
>>
>> sessionInfo()
>> R version 4.1.2 (2021-11-01)
>> Platform: x86_64-apple-darwin21.2.0 (64-bit)
>> Running under: macOS Monterey 12.1
>> ...
>>
>>
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
>	[[alternative HTML version deleted]]
>
>______________________________________________
>R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.

-- 
Sent from my phone. Please excuse my brevity.



More information about the R-help mailing list