Representation()
Promotion is automatic and upward only: adding 1 to a 2^53 integer yields a :bigInteger, and nothing silently demotes. :rational and :complex are named in the plan and not built yet, so they are not reported -- a ladder that claims rungs it does not have is worse than a short one.
also: which representation what kind of number integer or decimal
Basic examples (2)
oS = StzNumberQ("0.1")
oS.Add("0.2")
? oS.Content()
? oS.IsExact()
? oS.Representation()0.3 1 decimal
run on 2026-10-02 04:25 inside the library at commit 0e72e2e2c; taken from 07-a-number-that-says-why.en.md(opens in a new tab)
oB = StzNumberQ("9007199254740993")
? oB.Representation()
oB.Add(1)
? oB.Content()
? 9007199254740993 + 1biginteger 9007199254740994 9007199254740992.00
run on 2026-10-02 04:25 inside the library at commit 0e72e2e2c; taken from 07-a-number-that-says-why.en.md(opens in a new tab)
Scope (5)
oQ = StzNumberQ("1/3")
? oQ.Representation()
? oQ.IsExact()
oQ.Add("2/3")
? oQ.Content()
? oQ.Same(1)rational 1 1 1
run on 2026-10-02 04:25 inside the library at commit 0e72e2e2c; taken from 07-a-number-that-says-why.en.md(opens in a new tab)
oMix = new stzNumber("1/4")
oMix.Add("0.25")
# a quarter plus 0.25 is a half
? oMix.Content()
# ...as a fraction, not 0.5
? oMix.Representation()
# ...and exactly
? oMix.IsExact()
# ...which is what lets a third survive meeting a decimal
? (new stzNumber("1/3")).AddQ("0.5").Content()1/2 rational 1 5/6
run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_rationals_narrated.ring(opens in a new tab)
oBig = new stzNumber("1/99999999999999999999999999999999")
# a 32-digit denominator survives construction
? oBig.Content()
# ...and reports as a fraction
? oBig.Representation()
oSum = new stzNumber("1/99999999999999999999999999999999")
oSum.Add("1/99999999999999999999999999999999")
# adding it to itself doubles the numerator
? oSum.Content()
# ...exactly
? oSum.IsExact()
# a fraction that reduces from big parts still lands on the small answer
? (new stzNumber("123456789012345678901234567890/246913578024691357802469135780")).Content()1/99999999999999999999999999999999 rational 2/99999999999999999999999999999999 1 1/2
run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_rationals_narrated.ring(opens in a new tab)
# a third is itself
? (new stzNumber("1/3")).Content()
# two quarters reduce
? (new stzNumber("2/4")).Content()
# six thirds reduce past being a fraction at all
? (new stzNumber("6/3")).Content()
# ...and report themselves as an integer
? (new stzNumber("4/2")).Representation()
# a zero numerator is just zero
? (new stzNumber("0/5")).Content()
# the sign lives on the numerator
? (new stzNumber("-1/2")).Content()
# ...even when it was written on the denominator
? (new stzNumber("1/-2")).Content()
# a fraction knows what it is
? (new stzNumber("1/3")).Representation()
# ...and answers the predicate
? (new stzNumber("1/3")).IsRational()
# while a decimal does not
? (new stzNumber("0.5")).IsRational()1/3 1/2 2 integer 0 -1/2 -1/2 rational 1 0
run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_rationals_narrated.ring(opens in a new tab)
# a small whole number
? (new stzNumber("42")).Representation()
# ...negative too
? (new stzNumber("-7")).Representation()
# a whole number past what an f64 holds exactly
? (new stzNumber("9007199254740992")).Representation()
# ...and far past it
? (new stzNumber("99999999999999999999999999999999")).Representation()
# a value with a fractional part
? (new stzNumber("19.99")).Representation()
# the predicates read the same
? (new stzNumber("99999999999999999999")).IsBigInteger()
# ...and say no when they should
? (new stzNumber("42")).IsBigInteger()
# ...for decimals
? (new stzNumber("0.5")).IsDecimalNumber()
oGrow = new stzNumber("9007199254740992")
oGrow.Add(1)
# it is still exact
? oGrow.Content()
# ...and reports the bigger rung
? oGrow.Representation()integer integer biginteger biginteger decimal 1 0 1 9007199254740993 biginteger
run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_no_loss_narrated.ring(opens in a new tab)
The extensions of this method
Each extension, and whether it exists for this method; an extension that exists combines with the others (FindSTCS).
Every example is a test file of the library, run inside the library for this page; only those whose output kept every promise their file wrote are shown.
See also
- The class stzNumber
- The area's reference: Numeric & optimization
- The other methods in these examples: stzNumber.Add · stzNumber.IsBigInteger · stzNumber.IsDecimalNumber · stzNumber.IsExact · stzNumber.IsRational · stzNumber.Same

