Add()
Add the given number to this one (mutating). For a copy, use Added.
also: plus sum increase increment
The forms of this verb
Add · Added
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 (8)
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)
# 2^53 + 1 is 9007199254740993
? (new stzNumber("9007199254740992")).AddQ(1).Content()
# a 32-digit integer gains one correctly
? (new stzNumber("99999999999999999999999999999999")).AddQ(1).Content()
# 999999999 squared is exact
? (new stzNumber("999999999")).MultiplyByQ("999999999").Content()
# a 20-digit product keeps all 40 digits
? (new stzNumber("12345678901234567890")).MultiplyByQ("98765432109876543210").Content()
# small integer arithmetic is untouched
? (new stzNumber("2")).MultiplyByQ("2").Content()9007199254740993 100000000000000000000000000000000 999999998000000001 1219326311370217952237463801111263526900 4
run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_exactness_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)
oHalf = new stzNumber("1/2")
# a half is 0.5
? oHalf.Same("0.5")
# ...whether written as a string or a number
? oHalf.Same(0.5)
# ...and equals another spelling of itself
? oHalf.Same("2/4")
# ...and is not 0.6
? oHalf.Same("0.6")
# a third is NOT 0.333
? (new stzNumber("1/3")).Same("0.333")
# ...nor 0.3333333333
? (new stzNumber("1/3")).Same("0.3333333333")
# a whole number reached through fractions compares equal
? (new stzNumber("2/3")).AddQ("1/3").Same(1)1 1 1 0 0 0 1
run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_rationals_narrated.ring(opens in a new tab)
# an exact product knows it
? (new stzNumber("19.99")).MultiplyByQ("0.15").IsExact()
# ...with nothing to explain
? (new stzNumber("19.99")).MultiplyByQ("0.15").Why()
# a big-integer sum knows it
? (new stzNumber("9007199254740992")).AddQ(1).IsExact()
oSqrt = new stzNumber("2")
oSqrt.SquareRoot()
# a square root does not pretend
? oSqrt.IsExact()
# ...and names the reason
? StzFindFirst("no exact decimal result", oSqrt.Why()) > 0
# IsApproximate is its mirror
? oSqrt.IsApproximate()
# Exactness() reports the register
? oSqrt.Exactness()1 1 0 1 1 inexact
run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_exactness_narrated.ring(opens in a new tab)
# 0.1 + 0.2 is 0.3
? (new stzNumber("0.1")).AddQ("0.2").Content()
# 0.1 * 0.1 is 0.01, not 0.0
? (new stzNumber("0.1")).MultiplyByQ("0.1").Content()
# 0.5 * 0.5 is 0.25, not 0.3
? (new stzNumber("0.5")).MultiplyByQ("0.5").Content()
# a price times a rate keeps its cents
? (new stzNumber("19.99")).MultiplyByQ("0.15").Content()
# ...and times a whole number
? (new stzNumber("19.99")).MultiplyByQ(3).Content()
# 0.25 * 0.25 is 0.0625
? (new stzNumber("0.25")).MultiplyByQ("0.25").Content()
# 0.01 * 0.01 is 0.0001
? (new stzNumber("0.01")).MultiplyByQ("0.01").Content()
# 1 + 0.001 is 1.001, not 1.00
? (new stzNumber("1")).AddQ("0.001").Content()
# 0.5 + 0.125 is 0.625, not 0.6
? (new stzNumber("0.5")).AddQ("0.125").Content()
# 10 - 0.001 is 9.999, not 10.00
? (new stzNumber("10")).SubtractQ("0.001").Content()0.3 0.01 0.25 2.9985 59.97 0.0625 0.0001 1.001 0.625 9.999
run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_exactness_narrated.ring(opens in a new tab)
oThird = new stzNumber("1/3")
oThird.Add("2/3")
# a third plus two thirds is ONE
? oThird.Content()
# ...exactly
? oThird.IsExact()
# ...and equals the number 1
? oThird.Same(1)
# a third plus a sixth
? (new stzNumber("1/3")).AddQ("1/6").Content()
# a half less a third
? (new stzNumber("1/2")).SubtractQ("1/3").Content()
# two thirds of three quarters
? (new stzNumber("2/3")).MultiplyByQ("3/4").Content()
# a half divided by a quarter is two
? (new stzNumber("1/2")).DivideQ("1/4").Content()
# every one of those is exact
? (new stzNumber("2/3")).MultiplyByQ("3/4").IsExact()
# a third times three is one
? (new stzNumber("1/3")).MultiplyByQ(3).Content()
# ...and adding zero changes nothing
? (new stzNumber("1/3")).AddQ(0).Content()1 1 1 1/2 1/6 1/2 2 1 1 1/3
run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_rationals_narrated.ring(opens in a new tab)
and 1 more in the tests
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.Divide · stzNumber.Exactness · stzNumber.IsApproximate · stzNumber.IsBigInteger · stzNumber.IsDecimalNumber · stzNumber.IsExact · stzNumber.MultiplyBy · stzNumber.Representation · stzNumber.Same · stzNumber.SquareRoot · stzNumber.Subtract · stzNumber.WhyNotExact

