R-精度中的等式?

R-精度中的等式?,r,R,我确信我遗漏了一些显而易见的东西,但这是怎么回事呢 sqrt(144) == 12^2 假的 我的直觉是它与精确性有关,但我很好奇为什么会有这样的结果。是的,它是精确性 options("scipen"=100, "digits"=22) sqrt(144) * 10000000000000 [1] 1199999999999999899362824 > 12 * 100000000000000000000000 [1] 1199999999999999899362824 在Wind

我确信我遗漏了一些显而易见的东西,但这是怎么回事呢

sqrt(144) == 12^2
假的


我的直觉是它与精确性有关,但我很好奇为什么会有这样的结果。

是的,它是精确性

options("scipen"=100, "digits"=22)
sqrt(144) * 10000000000000
[1] 1199999999999999899362824

> 12 * 100000000000000000000000
[1] 1199999999999999899362824

在Windows 10上的R3.5.2上,这可能类似于我遗漏了一些东西,但你似乎在问为什么
12==144
False
?是的
sqrt(144)==12
,而不是
sqrt(144)==12^2
这应该是“按输入错误关闭的”,而不是“按重复关闭的”(
sqrt(144)==12
在哪个系统上是
真的?我得到了
sqrt(144)*100000000000000000[1]120000000000000000000
windows10,r3.5.2。这很有趣…有趣的是,当我在Windows10中的Ubuntu 16.04.2上运行R3.2.3时,我得到了你的结果。好的,把它归结为“浮点不可靠…”-我们已经知道了
options("scipen"=100, "digits"=22)
sqrt(144) * 10000000000000
[1] 1199999999999999899362824

> 12 * 100000000000000000000000
[1] 1199999999999999899362824