为什么逐元素矩阵乘法为 R 中的相同数字提供不同的输出?

Why element-wise matrix multiplication giving different output for same numbers in R?

考虑以下矩阵 A 和 B。

> A
          [,1]     [,2]     [,3]
 [1,] 76.66894 76.46920 76.38535
 [2,] 76.66894 76.48072 76.40349
 [3,] 76.66894 76.56698 77.22777
 [4,] 76.66894 76.46920 76.38535
 [5,] 76.66894 76.48072 76.40349
 [6,] 76.66894 76.56698 77.22777
 [7,] 76.66894 76.46920 76.38535
 [8,] 76.66894 76.48072 76.40349
 [9,] 76.66894 76.56698 77.22777

> B
           [,1]      [,2]      [,3]
 [1,] 0.1111111 0.1111111 0.1111111
 [2,] 0.1111111 0.1111111 0.1111111
 [3,] 0.1111111 0.1111111 0.1111111
 [4,] 0.1111111 0.1111111 0.1111111
 [5,] 0.1111112 0.1111112 0.1111112
 [6,] 0.1111111 0.1111111 0.1111111
 [7,] 0.1111111 0.1111111 0.1111111
 [8,] 0.1111111 0.1111111 0.1111111
 [9,] 0.1111111 0.1111111 0.1111111

我想对 A 和 B 进行逐元素乘法运算,我希望第一列中的所有结果都相同,但第 5 个除外,因为它会乘以稍高的数字。但是,我得到以下结果:

C <- A*B
> C
          [,1]     [,2]     [,3]
 [1,] 8.518769 8.496576 8.487259
 [2,] 8.518772 8.497859 8.489277
 [3,] 8.518769 8.507440 8.580862
 [4,] 8.518772 8.496579 8.487262
 [5,] 8.518775 8.497861 8.489280
 [6,] 8.518772 8.507443 8.580865
 [7,] 8.518769 8.496576 8.487259
 [8,] 8.518772 8.497859 8.489277
 [9,] 8.518769 8.507440 8.580862

即使将相同的值相乘,我得到的值也略有不同。为什么会这样?

这些是浮点数,所以必须有更高的精度,而不仅仅是打印的数字,并且可以作为乘法的差异加起来,即

print(B[5,] - A[5, ], digits = 16)

会有所不同