Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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. :-)

share|improve this question

2 Answers 2

up vote 18 down vote accepted

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.3`20.

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

Sqrt[2] // N
(* 1.4142135623730951 *)

InputForm[Sqrt[2] // N, NumberMarks -> True]
(* 1.4142135623730951` *)
share|improve this answer
    
Thanks, this is very clear! –  Joseph O'Rourke Mar 14 '12 at 1:10
    
InputForm? You mean StandardForm, isn't it? –  Sjoerd C. de Vries Apr 28 at 17:56
    
@SjoerdC.deVries Yes, StandardForm for the first half of the sentence. However, when editing the cell/copy pasting, it gets converted to InputForm (with NumberMarks -> True). –  rm -rf Apr 28 at 18:36

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[3`21] == 1.73205080756887729353

Machine numbers contain the same number of digits and maintain no information on their precision, e.g. :

{Sqrt[3`10] == Sqrt[3] // N, Sqrt[3`10]}
{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}

enter image description here

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}  
share|improve this answer
    
Thank you! Strange that one needs to round MachinePrecision to see its value. –  Joseph O'Rourke Mar 14 '12 at 1:10
1  
@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
1  
This is indeed a very educational answer, Artes---Thanks! –  Joseph O'Rourke Mar 15 '12 at 0:45
1  
@Artes Oops. I had typed <dollar_sign>MachinePrecision. That dollar signa, apparently, gets munged. I might have caught it in a response. But not a comment, as they don't show what the result will look like. –  Daniel Lichtblau Mar 19 '12 at 1:21

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.