# 9.15 DecimalExpansion¶

All rationals have repeating decimal expansions. Operations to access the individual digits of a decimal expansion can be obtained by converting the value to RadixExpansion(10). More examples of expansions are available in BinaryExpansionXmpPage , HexadecimalExpansionXmpPage , and RadixExpansionXmpPage .

The operation decimaldecimalDecimalExpansion is used to create this expansion of type DecimalExpansion.

r := decimal(22/7)


 3.142857‾

Type: DecimalExpansion

Arithmetic is exact.

r + decimal(6/7)


 4

Type: DecimalExpansion

The period of the expansion can be short or long ...

[decimal(1/i) for i in 350..354]


 [0.00285714‾,0.002849‾,0.0028409‾,0.00283286118980169971671388101983‾,0.00282485875706214689265536723163841807909604519774011299435‾]

Type: List DecimalExpansion

or very long.

decimal(1/2049)


 0.000488042947779404587603709126403123474865788189360663738408979990239‾141044411908247925817471937530502684236212786725231820400195217179111‾761835041483650561249389946315275744265495363591996095656417764763299‾170326988775012201073694485114690092728160078086871644704734016593460‾22449975597852611029770619814543679843826256710590531966813079551‾

Type: DecimalExpansion

These numbers are bona fide algebraic objects.

p := decimal(1/4)*x^2 + decimal(2/3)*x + decimal(4/9)


 0.25x2+0.6‾x+0.4‾

Type: Polynomial DecimalExpansion

q := differentiate(p, x)


 0.5x+0.6‾

Type: Polynomial DecimalExpansion

g := gcd(p, q)


 x+1.3‾

Type: Polynomial DecimalExpansion