Course of Raku / Essentials / Variables and data types essentials / Numbers
Operations with numbers
There is no doubt you already know some of the operations you can do with Raku numbers. Just to mention that the symbol of the operation is called an operator. The objects on which we perform operations are called operands.
Arithmetics
Operator | Operation +
| Addition - | Subtraction * | Multiplication
/ | Division
As Raku supports Unicode really well, some of these operators have non-ASCII equivalents:
× | Multiplication ÷ | Division
To change the order of execution, use parentheses:
say 3 * 4 + 5; # 17
say 3 * (4 + 5); # 27Modulo
The modulo operator is % as in many other languages.
% | Modulo
It returns the remainder of the integer division of two numbers, so
10 % 3 is 1. Note that -10 % 3 is
2 as the result of the operation is defined as the
difference between the first number and the rounded-down division
multiplied by the second number. So, $a % $b is equivalent
to $a - $b * floor($a / $b).
Divisibility
Raku adds a useful operator to test if the number is divisible by another number.
%% | Divisibility
This is an infix operator that needs two operands:
10 %% 3. If the first operand is divisible by the second
operand, the result is a Boolean True. Otherwise,
False.
Integer operations
There are special operations that return integer results. Their operators are words instead of symbols.
div | Integer division mod | Integer
modulo
The div operator rounds down the result, so
10 div 3 is 3, and -10 div 3 is
-4.
Both div and mod expect integer operands.
So, the following program will not work if you uncomment the lines
marked as Error:
say 10.3 % 3; # OK
# say 10.3 mod 3; # Error
say 10.3 / 3.3; # OK
# say 10.3 div 3.3; # ErrorPower
There are two ways of getting the result of x to the power
of y. First, you can use the ** operator:
say 3 ** 4; # 81Second, you can use superscript digits, for example:
say 3⁴; # 81It is possible to put more than one superscript digit to get the value of power bigger than 9. For example:
say 2¹⁵; # 32768Negative power is not a problem either:
say 2 ** (-2); ## 0.25
say 2⁻²; # 0.25Notice that the result of the last two expressions is a
Rat number.
Operations with assignment
All the operations support the shortcut syntax when you need to
update the variable. Let us demonstrate it on the example of
+.
The full form
$a = $a + $b;is equivalent to:
$a += $b;Course navigation
← Floating-point numbers | Apple sharing →
💪 Or jump directly to
the exercises in this section.
Translations of this page: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська