Same()
MATHEMATICAL equality, as opposed to Haro's `=` on the rendered strings. "1.50" and "1.5" are the same number; "0.1" and 0.1 are not the same BITS.
aussi: same number equal in value numerically equal
aussi écrite: IsSameAs
Exemples de base (2)
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)
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)
Portée (2)
oPrice = new stzNumber("1.50")
# 1.50 and 1.5 are the same number
? oPrice.Same("1.5")
# ...whether the other side is a string or a number
? oPrice.Same(1.5)
# ...and 1.6 is not
? oPrice.Same("1.6")
oZero = new stzNumber("0")
# 0 and -0 are the same number
? oZero.Same("-0")
# ...and so is 0.000
? oZero.Same("0.000")
# IsSameAs reads the same
? oZero.IsSameAs("0.00")
# it compares against another stzNumber too
? oPrice.Same(new stzNumber("1.5"))1 1 0 1 1 1 1
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)
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.Add · stzNumber.Divide · stzNumber.IsExact · stzNumber.MultiplyBy · stzNumber.Representation · stzNumber.Subtract

