in reply to int() function

*Edit:* I realise now that this is not a good answer to your question, so scratch that. I need to go now, so can't fix it in the next minutes - sorry for the noise.

The issue is, as ever so often, limited accuracy of floating point calculations. The number 1.15 can not be represented *exactly* as a floating point number, so the representation is either a tiny bit below, or a tiny bit above 1.15.

Apparently it is a tiny bit below 1.15, so the result of the multiplication is a tiny bit below 195.5, and after the addition of 0.5 you get something a tiny bit below 196.

The `int` function doesn't care about how tiny that bit might be, it happily throws away everything below 196 because, well, it is *less* than 196.

There's nothing magical about the number 170: The tiny error is either negative or positive, and whenever it is negative, `int` will behave like that.

So, using `printf` is a well accepted way to get around this issue, because it gets the rounding right for normal expectations.

Comment onRe: int() function