Los redondeos creo que estan funcionando correctamente,
1. Hay que comprobar es el valor de la contante que imagino es = 2
2. El redondeo de 519.99 con 2 decimales es = 519.99, lo hagas como lo hagas
3. Para saber si redondea bien o mal, habria que saber cual es el valor del 3 decimal, 519.99x
4. La solucion de Donhoycar, es correcta dependiendo del uso que queramos hacer de esa cantidad.
En este caso creo que sería suficiente con redondear a 1 decimal, aun que no lo he probado, 519.99 deberia ser 520.00. Si lo pruebas y te da 519.90 usa lo que te dice donhoycar.
Eso te funciona porque quitando los decimales, te redondea al entero (sin decimales) más próximo, es decir, 520, no 520,00.
Es que, especificaste a qué valor querías llegar, pero no redondeando basándosoe en qué criterios (ajustando segundo decimal, ajustando al primero, sin decimales, etc...) ;)