This means that due to the limitations of the internal representation, the literal 9.55 is in fact 9.550000000000001 which rounds to 9.56. The same goes for 43.55 but there the representation is slightly smaller than 43.55 so a rounding down occurs.
Thank you for your explanation. How do I circumvent this problem? I have a little perl-program that pulls these numbers from a file and it has to round them correctly. Isn't there some way to store a number exactly?