NumberExpand

NumberExpand[x]

gives a list of the decimal digits of x multiplied by their corresponding powers of 10.

NumberExpand[x,b]

expands x in base b.

NumberExpand[x,b,len]

gives a list of length len.

Details

  • For any number x, Total[NumberExpand[x,]]==x.
  • For an integer x, NumberExpand[x] returns a list of integers.
  • For a rational x, the fractional part of x is added to the last element of NumberExpand[IntegerPart[x]].
  • For a non-exact number x, all elements of NumberExpand[x] but the last are exact.
  • For an exact number x, the length of NumberExpand[x] equals the number of digits in the integer part of x.
  • For a non-exact number x, NumberExpand[x] normally returns a list of length Round[Precision[x]].
  • For a non-exact number x and an exact base b, NumberExpand[x,b] normally returns a list of length Round[Precision[x] Log[b,10]].
  • If len is larger than Precision[x] Log[b,10], the remaining parts of the expansion are filled in as Indeterminate.
  • The base b in NumberExpand[x,b] can be a real number greater than 1.
  • For any number x of absolute value less than 1, the first element of NumberExpand[x,] is 0 or 0..
  • NumberExpand[0.] returns a list of length Floor[Accuracy[0.]]+2.

Examples

open allclose all

Basic Examples  (3)

Expand a number into a list of multiples of powers of 10:

Expand a number in base 2:

Specify the length of the output:

Scope  (5)

Expand an integer into a list of multiples of powers of 10:

Expand a rational number in base 2, obtaining a rational remaining part:

Expand a machine-precision real number, obtaining a machine-precision remaining part:

Expand an exact complex number in base 7:

Expand an inexact complex number in base 10:

Generalizations & Extensions  (5)

Expand a negative integer:

Expand a real number in a rational base:

Expand a number using a machine-precision base:

Expand a rational number in a real base:

Expand a real number in a real base:

Properties & Relations  (9)

For an integer, when the length of the output is required to be larger than needed, NumberExpand pads with 0s on the right:

For a rational number with a finite-length decimal part, when the length of the output is required to be larger than needed, NumberExpand pads with 0s on the right:

For a rational number with an infinite-length decimal part, the last element of the output list is always nonzero:

For any number n, Total[NumberExpand[n,]] equals n:

The total of the expansion of an exact number in an integer base is the number itself:

If the base is non-exact, the total will have a different precision:

For an exact number expanded into inexact parts, the difference with the total is smaller than the last part of the expansion:

Then Rationalize may be able to recover the original exact number:

When a non-exact number is expanded in an exact base, all the elements of the output list but the last are exact:

The last element is not necessarily zero:

For non-exact numbers, NumberExpand returns a list of parts corresponding to the digits of RealDigits:

Small variations of the input may result in representations containing multiple 9s:

The precision of Total[NumberExpand[]] is effectively determined by the minimum precision of the input arguments:

NumberExpand automatically threads over lists:

Possible Issues  (1)

Parts of the expansion unknown at the available precision are filled in as Indeterminate:

In this situation, the original number cannot be reconstructed:

Introduced in 2016
 (11.0)