Softanza
DémarrerEnglish
Softanza
Référence · stzNumber

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)

Softanza
oS = StzNumberQ("0.1")
oS.Add("0.2")
? oS.Content()
? oS.IsExact()
? oS.Representation()
Sortie
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)

Softanza
oB = StzNumberQ("9007199254740993")
? oB.Representation()
oB.Add(1)
? oB.Content()
? 9007199254740993 + 1
Sortie
biginteger
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)

Softanza
oQ = StzNumberQ("1/3")
? oQ.Representation()
? oQ.IsExact()
oQ.Add("2/3")
? oQ.Content()
? oQ.Same(1)
Sortie
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)

Softanza
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()
Sortie
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)

Softanza
# 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()
Sortie
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)

Softanza
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()
Sortie
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)

Softanza
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)
Sortie
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)

Softanza
# 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()
Sortie
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)

Softanza
# 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()
Sortie
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)

Softanza
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()
Sortie
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).

Extension
Existe
Ce qu'elle ajoute · Les noms
Q
oui
fait ce que fait la méthode, puis rend l'objet, pour que l'appel puisse s'enchaîner · AddQ, AddManyQ, AddManyXTQ
QQ
non
enchaîne sur le type d'objet suivant, plus précis (l'échelle des Q)
QQQ
non
enchaîne sur le type d'objet le plus précis (l'échelle des Q)
QRT
non
rend le résultat comme un objet du type demandé
CS
non
prend un indicateur de sensibilité à la casse
ST
non
prend la position de départ (StartingAt)
IB
non
prend des bornes incluses (IncludingBounds)
XT
oui
la forme étendue : plus de paramètres que la méthode de base · AddManyXT, AddManyXTQ
XTT
non
encore une extension : une forme étendue de plus, après XT
Z
non
inclut la position dans ce qu'elle rend
ZZ
non
rend les positions comme des sections, [début, fin]
W
non
choisit selon une condition
WF
non
choisit selon une condition, avec les mots-clés expressifs (@NextItem, @PreviousItem...)
D
non
prend une direction, en avant ou en arrière (Directional)
F
non
prend une fonction (la condition ou la mise à jour est donnée comme une fonction) ; le document des formes emploie aussi F pour la forme future, qui diffère l'action
Many
oui
travaille sur une collection d'éléments au lieu d'un seul (la forme plurielle) · AddMany, AddManyQ, AddManyXT, AddManyXTQ
Except
non
prend des exceptions, ce qu'il faut laisser de côté (la forme exceptionnelle)
U
non
rend le résultat sans doublon

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