RealDigits

RealDigits[x]

gives a list of the digits in the approximate real number x, together with the number of digits that are to the left of the decimal point.

RealDigits[x,b]

gives a list of baseb digits in x.

RealDigits[x,b,len]

gives a list of len digits.

RealDigits[x,b,len,n]

gives len digits starting with the coefficient of bn.

Details

  • RealDigits gives the most significant digits first, as in standard positional notation.
  • RealDigits[x] normally returns a list of digits of length Round[Precision[x]].
  • RealDigits[x] and RealDigits[x,b] normally require that x be an approximate real number, returned for example by N. RealDigits[x,b,len] also works on exact numbers.
  • For integers and rational numbers with terminating digit expansions, RealDigits[x] returns an ordinary list of digits. For rational numbers with nonterminating digit expansions, it yields a list of the form {a1,a2,,{b1,b2,}} representing the digit sequence consisting of the ai followed by infinite cyclic repetitions of the bi. »
  • If len is larger than Precision[x]/Log[10,b], then remaining digits are filled in as Indeterminate.
  • RealDigits[x,b,len,n] starts with the digit which is the coefficient of bn, truncating or padding with zeros as necessary. »
  • RealDigits[x,b,len,-1] starts with the digit immediately to the right of the baseb decimal point in x.
  • RealDigits[x,b,Automatic,n] gives as many digits as it can in a fixed-precision number.
  • The base b in RealDigits[x,b] need not be an integer. For any real b such that b>1, RealDigits[x,b] successively finds the largest integer multiples of powers of b that can be removed while leaving a nonnegative remainder.
  • RealDigits[x] discards the sign of x.
  • RealDigits[0.] gives {{0},-Floor[Accuracy[0.]]}.
  • FromDigits can be used as the inverse of RealDigits.

Examples

open allclose all

Basic Examples  (3)

Give the list of digits and exponent:

Give 25 digits of in base 10:

Give 25 digits of 19/7:

Give an explicit recurring decimal form:

Scope  (3)

Base-2 digits:

20 digits starting with the coefficient of :

20 digits starting with the coefficient of :

Noninteger bases are allowed:

Generalizations & Extensions  (2)

RealDigits gives Indeterminate if more digits than the precision are requested:

Start at the coefficient of :

Include only digits that are determined by the precision available:

Applications  (6)

The 10000^(th) digit of is an 8:

Number of 1s in the first million base-2 digits of :

Distribution of first 100000 digits of in base 47:

Fibonacci representations of integers:

Binary representation of a machine number:

TemplateBox[{MachinePrecision, paclet:ref/MachinePrecision}, RefLink, BaseStyle -> {InlineFormula}] is equal to the number of bits times :

Get the next larger machine number:

The spacing between these numbers is 2(e-1) $MachineEpsilon:

Find the error in representing 1/10 with a machine number:

The next smaller machine number is farther away:

Properties & Relations  (1)

The default number of digits returned is determined by the precision of the number:

Possible Issues  (2)

Digits unknown at the available precision are filled in as Indeterminate:

For non-binary bases, the digits given may not be enough to reconstruct the number exactly:

More than Round[MachinePrecision] decimal digits are required to separate x from 1:

InputForm uses a sufficient number of digits to uniquely reconstruct the number:

Neat Examples  (1)

A hundred digits of starting with the millionth digit:

Introduced in 1991
 (2.0)
 |
Updated in 1996
 (3.0)
1999
 (4.0)
2000
 (4.1)
2002
 (4.2)
2003
 (5.0)
2007
 (6.0)