# SetAccuracy

SetAccuracy[expr,a]

yields a version of expr in which all numbers have been set to have accuracy a.

# Details • When SetAccuracy is used to increase the accuracy of a number, the number is padded with zeros. The zeros are taken to be in base 2. In base 10, the additional digits are usually not zeros.
• SetAccuracy returns an arbitraryprecision number even if the number of significant digits obtained will be less than \$MachinePrecision.
• When expr contains machineprecision numbers, SetAccuracy[expr,a] can give results that differ from one computer system to another.
• SetAccuracy will first expose any hidden extra digits in the internal binary representation of a number, and, only after these are exhausted, add trailing zeros. »
• 0.004``25 generates a number with all trailing digits zero and accuracy 25 on any computer system.
• SetAccuracy[expr,a] does not modify expr itself.

# Examples

open allclose all

## Basic Examples(2)

Set the accuracy of all numbers in an expression to 20:

Convert from a machine number to an arbitrary-precision number with accuracy 32:

## Scope(5)

Set the accuracy of a complex number:

Convert approximate numbers to exact rational numbers:

The result has trailing zeros once any hidden digits are exposed:

SetAccuracy does not affect exact powers:

This allows you to, for example, change the accuracy of polynomial coefficients:

Inexact powers are modified:

Special rules may apply to data objects:

For an InterpolatingFunction object, SetAccuracy changes the appropriate data only:

It works as an approximate function, but with arithmetic appropriate for the modified data:

## Applications(1)

Find the roundoff error in evaluating an expression with machine numbers:

This dominates the approximation error since the increment is so small:

## Properties & Relations(2)

SetAccuracy just sets the precision of numbers, while N works adaptively:

Since N works adaptively, the result has the requested accuracy of 20:

Use SetAccuracy:

The accuracy is less than 20 because of the way the exponential function magnifies the result:

SetAccuracy effectively evaluates Exp with argument 10 to accuracy 20:

For nonzero numbers , SetAccuracy[x,a] is equivalent to SetPrecision[x,a+e]:

e is given by RealExponent: