Softanza
StartFrançais
Softanza
Reference · stzNumber

MultiplyBy()

multiplying the number by an other number

Basic examples (2)

Softanza
o1 = new stzNumber(11)
o1.MultiplyByMany([2, 3])
? o1.Value()
Output
66

run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from 36_value.ring(opens in a new tab)

Softanza
oM = StzNumberQ("0.1")
oM.MultiplyBy("3")
? oM.Content()
? oM.IsExact()
? 0.1 * 3 = 0.3
Output
0.3
1
0

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)

Scope (6)

Softanza
oPlain = new stzNumber("19.99")
# its regime is machine
? oPlain.Regime()
oPlain.MultiplyBy("0.15")
# ...so it keeps every place the exact arithmetic produced
? oPlain.Content()
# ...and is not money
? oPlain.IsMoney()
Output
machine
2.9985
0

run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_regime_narrated.ring(opens in a new tab)

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()
Output
9007199254740993
100000000000000000000000000000000
999999998000000001
1219326311370217952237463801111263526900
4

run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_exactness_narrated.ring(opens in a new tab)

Softanza
tiny = number("1e-20")
oTiny = new stzNumber(tiny)
# the digits are kept
? oTiny.Content()
# ...so the value is still positive
? oTiny.NumericValue() > 0
# ...and scaling it back recovers 1
? oTiny.NumericValue() * number("1e20")
oTiny.MultiplyBy(2)
# it is exact, because the content is a plain decimal the exact path can use
? oTiny.Content()
# ...and says so
? oTiny.IsExact()
Output
0.00000000000000000001
1
1
0.00000000000000000002
1

run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_no_loss_narrated.ring(opens in a new tab)

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()
Output
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)

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()
Output
0.3
0.01
0.25
2.9985
59.97
0.0625
0.0001
1.001
0.625
9.999

run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from numeric_exactness_narrated.ring(opens in a new tab)

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()
Output
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).

Extension
Exists
What it adds · The names
Q
yes
does what the method does, then returns the object, so the call can be chained · MultiplyByQ, MultiplyByManyQ
QQ
no
chains on the next, more specific type of object (the Q ladder)
QQQ
no
chains on the most specific type of object (the Q ladder)
QRT
no
returns the result as an object of the requested type
CS
no
takes a case-sensitivity flag
ST
no
takes the position to start from (StartingAt)
IB
no
takes bounds that are included (IncludingBounds)
XT
yes
the extended form: more parameters than the base method · MultiplyByManyXT
XTT
no
yet another extension: a further extended form, after XT
Z
no
includes the position in what it returns
ZZ
no
returns positions as sections, [start, end]
W
no
selects by a condition
WF
no
selects by a condition, with the expressive keywords (@NextItem, @PreviousItem...)
D
no
takes a direction, forward or backward (Directional)
F
no
takes a function (the condition or the update is given as a function); the forms document also uses F for the future form, which defers the action
Many
yes
works on a collection of items instead of one (the plural form) · MultiplyByMany, MultiplyByManyQ, MultiplyByManyXT
Except
no
takes exceptions, what to leave out (the exceptional form)
U
no
returns the result without duplication

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