Add()
Add the given number to this one (mutating). For a copy, use Added.
aussi: plus sum increase increment
Les formes de ce verbe
Add · Added
Exemples de base (2)
oS = StzNumberQ("0.1")
oS.Add("0.2")
? oS.Content()
? oS.IsExact()
? oS.Representation()0.3 1 decimal
exécuté le 2026-10-02 04:25 dans la bibliothèque au commit 0e72e2e2c ; tiré de 07-a-number-that-says-why.en.md(s'ouvre dans un nouvel onglet)
oB = StzNumberQ("9007199254740993")
? oB.Representation()
oB.Add(1)
? oB.Content()
? 9007199254740993 + 1biginteger 9007199254740994 9007199254740992.00
exécuté le 2026-10-02 04:25 dans la bibliothèque au commit 0e72e2e2c ; tiré de 07-a-number-that-says-why.en.md(s'ouvre dans un nouvel onglet)
Portée (8)
oQ = StzNumberQ("1/3")
? oQ.Representation()
? oQ.IsExact()
oQ.Add("2/3")
? oQ.Content()
? oQ.Same(1)rational 1 1 1
exécuté le 2026-10-02 04:25 dans la bibliothèque au commit 0e72e2e2c ; tiré de 07-a-number-that-says-why.en.md(s'ouvre dans un nouvel onglet)
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
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_rationals_narrated.ring(s'ouvre dans un nouvel onglet)
# 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
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_exactness_narrated.ring(s'ouvre dans un nouvel onglet)
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
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_rationals_narrated.ring(s'ouvre dans un nouvel onglet)
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
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_rationals_narrated.ring(s'ouvre dans un nouvel onglet)
# 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
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_exactness_narrated.ring(s'ouvre dans un nouvel onglet)
# 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
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_exactness_narrated.ring(s'ouvre dans un nouvel onglet)
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
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_rationals_narrated.ring(s'ouvre dans un nouvel onglet)
et 1 autres dans les tests
Les extensions de cette méthode
Chaque extension, et si elle existe pour cette méthode ; une extension qui existe se compose avec les autres (FindSTCS).
Chaque exemple est un fichier de test de la bibliothèque, exécuté dans la bibliothèque pour cette page ; seuls ceux dont la sortie a tenu toutes les promesses écrites par leur fichier sont montrés. Les explications, les titres et le code sont ceux de la bibliothèque, en anglais.
Voir aussi
- La classe stzNumber
- La référence du domaine : Numérique et optimisation
- Les autres méthodes de ces exemples : stzNumber.Divide · stzNumber.Exactness · stzNumber.IsApproximate · stzNumber.IsBigInteger · stzNumber.IsDecimalNumber · stzNumber.IsExact · stzNumber.MultiplyBy · stzNumber.Representation · stzNumber.Same · stzNumber.SquareRoot · stzNumber.Subtract · stzNumber.WhyNotExact

