The rounding you apply will round up when the digit you want to round is a 5. Otherwise it will round down. This may sound odd, but your first number ends up having a "4" at fifth decimal place. The reason is in the IEEE 754 standardized method of mapping decimal floating points to a binary representation: there's limited room for precision in 32 bits.
To see what I mean, try the following in the Immediate window:
?0.291575
0.29157499999999997
As you can see, the double "0.291575" is actually, internally "0.291574....". Hence the rounding down.