[Rd] Floating point issue
Rui Barradas
ru|pb@rr@d@@ @end|ng |rom @@po@pt
Sun Jul 10 20:46:26 CEST 2022
Hello,
R 4.2.1 on Windows 11, sessionInfo() at end.
I cannot reproduce this either.
op <- options(scipen = 999)
1e24
# [1] 999999999999999983202404
1e24 == 999999999999999983222784
# [1] TRUE
1e25
# [1] 10000000000000000906640224
1e25 == 10000000000000000905969664
# [1] TRUE
10000000000000000905969664
# [1] 10000000000000000906640224
10000000000000003053453312
# [1] 10000000000000003053648442
10000000000000000000000000 == 1e25
# [1] TRUE
options(op)
sessionInfo()
R version 4.2.1 (2022-06-23 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22000)
Matrix products: default
locale:
[1] LC_COLLATE=Portuguese_Portugal.utf8
LC_CTYPE=Portuguese_Portugal.utf8
[3] LC_MONETARY=Portuguese_Portugal.utf8 LC_NUMERIC=C
[5] LC_TIME=Portuguese_Portugal.utf8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_4.2.1
Hope this helps,
Rui Barradas
Às 15:44 de 10/07/2022, Iñaki Ucar escreveu:
> On Sun, 10 Jul 2022 at 16:28, GILLIBERT, Andre
> <Andre.Gillibert using chu-rouen.fr> wrote:
>>
>>> No, that is how computers work (with floating point numbers).
>>
>>
>> The fact that not all values are representable by floating point does not mean that outputing a number with maximum accuracy, then reading it back, should yield a different number.
>>
>>
>> I would like to point that I cannot reproduce this "bug" on the official R 4.2.0 Windows x86_64 build on an AMD Ryzen 1700 on Windows 10.
>
> I cannot reproduce this on a 64-bit Linux build of R 4.1.3 either:
>
> options(scipen = 999)
> 1e24
> #> [1] 999999999999999983222784
> 1e24 == 999999999999999983222784
> #> [1] TRUE
>
> 1e25
> #> [1] 10000000000000000905969664
> 1e25 == 10000000000000000905969664
> #> [1] TRUE
>
> 10000000000000000905969664
> #> [1] 10000000000000000905969664
>
> 10000000000000003053453312
> #> [1] 10000000000000003053453312
>
> 10000000000000000000000000 == 1e25
> #> [1] TRUE
>
More information about the R-devel
mailing list