I expect the result of the command below to be 0.54742763380700947 (truncating) or 0.54742763380700948 (rounding).
> print(0.54742763380700947685, digits=20)
[1] 0.54742763380700943
Why is it 0.54742763380700943? Where this "3" at the end comes from?