Precision

Precision[x]

gives the effective number of digits of precision in the number x.

Details

  • Precision[x] gives a measure of the relative uncertainty in the value of x.
  • With absolute uncertainty dx, Precision[x] is -Log[10,dx/x].
  • For exact numbers such as integers, Precision[x] is Infinity.
  • Precision[x] does not normally yield an integer result.
  • For any approximate number x, Precision[x] is equal to RealExponent[x]+Accuracy[x].
  • For machineprecision numbers, Precision[x] yields MachinePrecision.
  • Numbers entered in the form digits`p are taken to have precision p.
  • Numbers such as 0``a whose overall scale cannot be determined are treated as having zero precision.
  • Numbers with zero precision are output in StandardForm as 0.10-a, where a is their accuracy.
  • If x is not a number, Precision[x] gives the minimum value of Precision for all the numbers that appear in x. MachinePrecision is considered smaller than any explicit precision.

Examples

open allclose all

Basic Examples  (3)

Machine-precision number:

Arbitrary-precision number:

Exact number:

Scope  (2)

A zero known to accuracy 20:

The precision is 0.:

The precision of z+1 is the same as the accuracy of z:

N attempts to get a result correct to the given precision:

This cannot always be achieved:

This is because relative error cannot be measured at zero and :

Generalizations & Extensions  (1)

The precision of a symbolic expression is the minimum of the precisions of its numbers:

Applications  (2)

Check the quality of a result:

Track precision loss in a repetitive calculation:

Properties & Relations  (2)

All machine numbers have the same precision, MachinePrecision:

This is 53 bits or about 16 digits:

For approximate numbers, Precision[x]==RealExponent[x]+Accuracy[x]:

Possible Issues  (4)

MachinePrecision is always considered effectively smaller than any explicit precision:

Numbers with sufficiently low precision are displayed with zero mantissa:

Since Precision is based on relative error, it is not measurable for zero:

You can measure the absolute size of the error with Accuracy:

If you expect the result to be near zero, you can specify accuracy as a goal for N:

Subnormal machine numbers violate the relationship Precision[x]==RealExponent[x]+Accuracy[x]:

Instead, all subnormal numbers have the same uncertainty as $MinMachineNumber:

Neat Examples  (1)

Precision and Accuracy in iterating the tent map:

Introduced in 1988
 (1.0)
 |
Updated in 2003
 (5.0)