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.
also: same number equal in value numerically equal
also written: IsSameAs
Basic examples (2)
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)
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)
Scope (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
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)
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.Divide · stzNumber.IsExact · stzNumber.MultiplyBy · stzNumber.Representation · stzNumber.Subtract

