On Nov 9, 2007 2:08 PM, Hans van Thiel <hthiel.char@zonnet.nl> wrote:
Hello All,
Can anybody explain the results for 1.0, 2.0 and 3.0 times pi below?
GHCi yields the same results. I did search the Haskell report and my
text books, but to no avail. Thanks in advance,
Hans van Thiel

Hugs> sin (0.0 * pi)
0.0
Hugs> sin (0.5 * pi)
1.0
Hugs> sin (1.0 * pi)
1.22460635382238e-16
Hugs> sin (1.5 * pi)
-1.0
Hugs> sin (2.0 * pi)
-2.44921270764475e-16
Hugs> sin ( 2.5 * pi)
1.0
Hugs> sin (3.0 * pi)
3.67381906146713e-16
Hugs>

More generally, this is due to the fact that floating-point numbers can only have finite precision, so a little bit of rounding error is inevitable when dealing with irrational numbers like pi.   This problem is in no way specific to Haskell.

-Brent