Pike can do all the usual arithmetic operations: addition (which is
expressed with the operator +), subtraction (),
division (/), multiplication (*), and also modulo
(%). The modulo operation, sometimes called "remainder" or
"rest", gives the remainder from a division. For example, if you
divide 7 by 3, 3 goes in 7 two times. But there is a remainder of 1,
and that is the result of the modulo operation.
Here is a table of the arithmetic operations:
Operation  Syntax  Result 
Addition

a + b

the sum of a and b

Subtraction

a  b

b subtracted from a

Negation

 a

minus a

Multiplication

a * b

a multiplied by b

Division

a / b

a divided by b

Modulo

a % b

the remainder of a division between a and b

Remember that pike makes a difference between numerical values that
are integers (the type int), and numerical values that are
real or "floatingpoint" numbers (the type float). This has
some importance for how expressions with arithmetic operations are
calculated by Pike. If at least one of the operands is a
float, we use the floatingpoint versions of the operation.
In if both operands are integers, we use a special integeronly
version of the operation. For most of the operations, the only
difference is that the type of the result will be different: 2 +
2 will give the integer value 4, while 2 + 2.0
will give the floatingpoint value 4.0. But with division is
more important.
With floatingpoint division, such as in 9.0 / 4.0,
the result is a floatingpoint value, in this case 2.25. But
with integer division, such as in 9 / 4, the result is
only the integer part, in this case 2.
The fact that integer division only gives the integer part can be
treacherous: If 73 out of 92 people payed their income tax on time,
don't try to calculate the percentage with the expression 73 / 92
* 100. That would give the result 0.
It is very common in programs to increment or decrement a variable
with one, such as in the statements
i = i + 1;
p = p  1;
To simplify such programs, Pike has these extra operators, which
you can use if you want to:
Operation  Syntax  Result 
Increment

++ a

increments a and returns the new value for a

Decrement

 a

decrements a and returns the new value for a

Post increment

a ++

increments a and returns the old value for a

Post decrement

a 

decrements a and returns the old value for a

The two versions of increment, ++i and i++, both
increment the value in the variable i with 1. The difference
is if we want to use them as parts of a larger expression. In that
case, ++i gives the new, incremented, contents of i
as value, while i++ gives the old contents of i as
value. The same difference applies to i and
i.