Why doesn't this round up?
When it is looking at rounding it only looks at the next decimal place to see which direction to round. So in your case it is seeing 4.524 which does not round up to 4.53. I have never heard of a system that rounds up all decimal values until it gets to your limit.

Think of it this way if 2 decimal points is what is important (think a lot of currencies) would you really want the 4th or later decimal value to impact what is calculated for a payment amount?