On the computer, transcendental functions have to be approximated, and π , being an irrational number, is also an approximation. Since this means that the computer's version of π is slightly different than the "real" value of π, the computed value of sin(π) will also be different than the "real" value of 0.

If your calculator is giving zero as the result, it may be because the calculator has fewer bits of precision or is checking for this special case. If you like, you can do the same in your calculations.

Here is a detailed explanation of each of your expressions:

1. If you do the same sine of π calculation in C, the result is the same as in Kyma:

**sin pi = 1.22465e-16**

Smalltalk and C use the same float and double libraries, so this is not a surprise. 64-bit double precision floating point numbers have a 48 bit mantissa; this means that the precision of any result is 3.5527136788005d-15.

2. If, instead of **1 normSin**, you use **1.0d normSin**, you will get more precision, since you are sending the message to a Double instead of an Integer.

3. Again, the same result in Smalltalk and C:

**cos pi/2 = 6.12323e-17**

4. If, instead of **0.5 normCos**, you use **0.5d normCos**, you will get more precision, since you are sending the message to a Double instead of a Float.