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 base‐b 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.
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 base‐b 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 non‐terminating 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 base‐b 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 non‐negative 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 all close allBasic Examples (3)
Give the list of digits and exponent:
RealDigits[123.55555]RealDigits[0.000012355555]RealDigits[Pi, 10, 25]RealDigits[19 / 7, 10, 25]Give an explicit recurring decimal form:
RealDigits[19 / 7]Scope (3)
RealDigits[1.234, 2, 15]RealDigits[Pi, 10, 20]20 digits starting with the coefficient of
:
RealDigits[Pi, 10, 20, -5]20 digits starting with the coefficient of
:
RealDigits[Pi, 10, 20, 5]RealDigits[Pi, GoldenRatio, 20]Generalizations & Extensions (2)
RealDigits gives Indeterminate if more digits than the precision are requested:
RealDigits[5.635, 10, 20]RealDigits[5.635, 10, 20, -15]Include only digits that are determined by the precision available:
RealDigits[5.635, 10, Automatic, -15]Applications (6)
RealDigits[Pi, 10, 1, -10000]Number of 1s in the first million base-2 digits of
:
Count[First[RealDigits[Pi, 2, 10 ^ 6]], 1]Distribution of first 100000 digits of
in base 47:
ListPlot[BinCounts[First[RealDigits[Pi, 47, 100000]], {0, 46}], DataRange -> {0, 46}]Fibonacci representations of integers:
Table[RealDigits[n, GoldenRatio, 10], {n, 5}]Binary representation of a machine number:
r = RandomReal[]{d, e} = RealDigits[r, 2]
is equal to the number of bits times
:
MachinePrecision == Length[d] * Log[10., 2]Get the next larger machine number:
d[[-1]] += 1;
rp = N[FromDigits[{d, e}, 2]]The spacing between these numbers is 2(e-1) $MachineEpsilon:
rp - r == 2 ^ (e - 1) * $MachineEpsilonFind the error in representing 1/10 with a machine number:
RealDigits[.1, 2]err = FromDigits[%, 2] - 1 / 10N[%]The next smaller machine number is farther away:
{d, e} = RealDigits[.1, 2];
d[[-1]] -= 1;
N[FromDigits[{d, e}, 2]] - 1 / 10Properties & Relations (1)
Possible Issues (2)
Digits unknown at the available precision are filled in as Indeterminate:
RealDigits[1.234, 10, 20]For non-binary bases, the digits given may not be enough to reconstruct the number exactly:
x = 1 + $MachineEpsilon;
{d, e} = RealDigits[1 + $MachineEpsilon]More than Round[MachinePrecision] decimal digits are required to separate x from 1:
FromDigits[{d, e}]InputForm uses a sufficient number of digits to uniquely reconstruct the number:
InputForm[x]x - 1.0000000000000002Tech Notes
History
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)
Text
Wolfram Research (1991), RealDigits, Wolfram Language function, https://reference.wolfram.com/language/ref/RealDigits.html (updated 2007).
CMS
Wolfram Language. 1991. "RealDigits." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2007. https://reference.wolfram.com/language/ref/RealDigits.html.
APA
Wolfram Language. (1991). RealDigits. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RealDigits.html
BibTeX
@misc{reference.wolfram_2026_realdigits, author="Wolfram Research", title="{RealDigits}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/RealDigits.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_realdigits, organization={Wolfram Research}, title={RealDigits}, year={2007}, url={https://reference.wolfram.com/language/ref/RealDigits.html}, note=[Accessed: 12-June-2026]}