WhyNotExact()
Empty when the value is exact; otherwise a plain sentence saying what was lost and where.
also: why not exact what was lost explain the precision
also written: Why
Basic examples (2)
oT = StzNumberQ("1")
oT.Divide("3")
? oT.Content()
? oT.IsExact()
? oT.WhyNotExact()0.333333 0 the division does not terminate in 6 decimal place(s)
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)
# 1 / 8 is 0.125
? (new stzNumber("1")).DivideQ("8").Content()
# 0.1 / 4 is 0.025
? (new stzNumber("0.1")).DivideQ("4").Content()
# 10 / 4 is 2.5
? (new stzNumber("10")).DivideQ("4").Content()
# 22 / 5 is 4.4
? (new stzNumber("22")).DivideQ("5").Content()
oThird = new stzNumber("1")
oThird.Divide("3")
# 1 / 3 does NOT claim to be exact
? oThird.IsExact()
# ...and says why
? StzFindFirst("does not terminate", oThird.Why()) > 00.125 0.025 2.5 4.4 0 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)
Scope (1)
# 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)
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.Exactness · stzNumber.IsApproximate · stzNumber.IsExact · stzNumber.MultiplyBy · stzNumber.SquareRoot

