# Meaning of backtick in floating-point literal

If I compute, say, 1/3//N, Mathematica displays

0.333333


as the result. When I copy that output to use elsewhere, the paste produces

0.3333333333333333


What is the meaning and function of the backtick ?

I realize this must be quite elementary. I stand ready to be educated. :-)

-

The backtick is a short-hand to mark the precision of your output. If it is not followed by any number, it denotes machine precision. You can denote arbitrary precision by including a number, as for example, 0.320.

By default, these are not displayed in InputForm, which is why you see them only when copying. You can show them with NumberMarks -> True. For example:

InputForm[Sqrt[2] // N]
Out[1]= 1.4142135623730951

InputForm[Sqrt[2] // N, NumberMarks -> True]
Out[2]= 1.4142135623730951

-
Thanks, this is very clear! –  Joseph O'Rourke Mar 14 '12 at 1:10

The default value of

$NumberMarks  Automatic  means that  should by default be used in arbitrary-precision but not machine-precision numbers. Arbitrary-precision numbers can contain an arbitrary number of digits e.g. : Sqrt[321] == 1.73205080756887729353  Machine numbers contain the same number of digits and maintain no information on their precision, e.g. : {Sqrt[310] == Sqrt[3] // N, Sqrt[310]}  {True, 1.7320508076}  One can force machine numbers to be shown with number marks by : Block[{$NumberMarks = True}, ToString[N[1/3], InputForm]]

0.3333333333333333


Precision[x] yields the effective number of digits of precision in the number x.

Precision /@ {1/3, 1/3 // N}


Precision[1/3 // N] // N

15.9546

Round[MachinePrecision]

16


You can count the number of digits before the backtick, namely 16.
The MachinePrecission is a real number because on the hardware level it is represented in the binary form. This needs 53 bits to represent almost 16 digits :

N@{MachinePrecision*Log[2, 10], MachinePrecision}

{53., 15.9546}

-
Thank you! Strange that one needs to round MachinePrecision to see its value. –  Joseph O'Rourke Mar 14 '12 at 1:10
@Joseph MachinePrecision is a symbolic constant like Pi and E. You can see its value using N[MachinePresicion] as well. This is what Artes did with Precision[1/3 // N] // N . Rounding gives the approximate (integer) number of digits of precision it corresponds to. –  Szabolcs Mar 14 '12 at 5:55
@Szaboics: Thanks, that makes sense! –  Joseph O'Rourke Mar 15 '12 at 0:42
This is indeed a very educational answer, Artes---Thanks! –  Joseph O'Rourke Mar 15 '12 at 0:45
You are welcome, I'm glad I could help. –  Artes Mar 15 '12 at 0:46
show 3 more comments