[R] How to handle large numbers?

Robin Hankin rksh1 at cam.ac.uk
Wed Feb 11 12:20:13 CET 2009


Feng

checkout the Brobdingnag package:


 > library(Brobdingnag)
 > exp(1000)/(exp(1007)+5)
[1] NaN

 > as.numeric(exp(as.brob(1000))/(exp(as.brob(1007))+5))
[1] 0.000911882
 >

Feng Li wrote:
> Dear R,
>
> I have two questions:
>
> 1, Why both R and Matlab give 0*Inf==NaN? To my knowledge, it should be zero
> mathematically. Am I right?
>
> 2, I need to calculate e.g. exp(a)/(exp(b)+c), where both a and b are very
> large numbers (>>1000, e.g a=1000, b=1007, and c=5). R gives me NaN when I
> use the following command:
>
>   
>> exp(1000)/(exp(1007)+5)
>>     
> [1] NaN
>
> I am pretty sure this should be close to zero. My question is whether there
> is a general way to solve this kind of question or should I do some settings
> before computing?
>
>
> Thanks in advance!
>
>
> Feng
>
>
>
>   


-- 
Robin K. S. Hankin
Uncertainty Analyst
University of Cambridge
19 Silver Street
Cambridge CB3 9EP
01223-764877




More information about the R-help mailing list