Inputting three particular numeric floating point literals in R 3.2.0 release on OSX 10.10.3 currently produces the following results: > 1e99 [1] 1e+99 > 1e99999999999 [1] Inf > 1e999999999999 [1] 0 In the third case, I had expected the result to be Inf. Jonathan Chang at Facebook has kindly identified the potential line where an overflow might occur: https://github.com/wch/r-source/blob/727df906359677033029ebd42ef4631e1d991750/src/main/util.c#L1708 double R_strtod5(const char *str, char **endptr, char dec, Rboolean NA, int exact) { //... int n //... //... if (*p == 'e' || *p == 'E') { //... for (n = 0; *p >= '0' && *p <= '9'; p++) n = n * 10 + (*p - '0'); // <--- Thanks to Jake Bolewski at MIT who brought this behavior to my attention.

Fascinating ... Bug confirmed on Linux (ubuntu 14.04 LTS, R 3.2.0 patched. The cutoff seems to be around here: > 1e10737000000 [1] Inf > 1e10738000000 [1] 0

The parsed result appears to oscillate between 0 and Inf. > 1e999999999999 [1] 0 > 1e9999999999999 [1] Inf > 1e99999999999999 [1] Inf > 1e999999999999999 [1] 0 > 1e9999999999999999 [1] Inf > 1e99999999999999999 [1] Inf > 1e999999999999999999 [1] 0 > 1e9999999999999999999 [1] 0 > 1e99999999999999999999 [1] Inf > 1e999999999999999999999 [1] 0

Fixed in R-devel, soon in R-patched.

Thanks!