According to the official documentation:
When you enter an approximate real number, the Wolfram Language has to decide whether to treat it as a machine number or an arbitrary‐precision number. Unless you specify otherwise, if you give less than
$MachinePrecisiondigits, the Wolfram Language will treat the number as machine precision, and if you give more digits, it will treat the number as arbitrary precision.
However the code below disagree:
In:= $MachinePrecision Precision[0.1000000000000000](*16 digits*) Precision[0.10000000000000000] (*17 digits*) Precision[0.100000000000000000](*18 digits*) Out= 15.9546 Out= MachinePrecision Out= MachinePrecision Out= 17.
It's only up to 18 digits that it is recognized as an arbitrary precision number. Is the documentation wrong?
Precision[0.100000000000000000](*18 digits*) output 17? I think it should be 18.
I sent an email and has received the reply from Wolfram Official. It has been confirmed this is an documentation mistake:
Thank you for contacting Wolfram Technical Support. I understand that the statement about precision in the following tutorial:
contradicts the statement about precision in the Numerical Precision section of the following tutorial:
I will file a report with our developers regarding this issue. Thank you for bring this to our attention.
Luke Titus Wolfram Technical Support Wolfram Research Inc. http://support.wolfram.com