Hola novato_erick.
A mi tampoco me queda claro si lo que esperas es 11.99 y obtenes 12 o viceversa.
El método común de redondeo consiste en verificar el valor del próximo dígito a la derecha del que se quiere redondear. Si este es menor a 5, el dígito a redondear no se altera, caso contrario se incrementa su valor en uno.
Si el valor a redondear a dos cifras es 11.99, entonces:
Código Delphi
[-]
Resultado:= SimpleRoundTo(11.99);
dejará en la variable "Resultado" el valor 11.99, para hacerlo mas claro agreguemos un cero a la derecha: 11.990. Como queremos redondear a dos cifras, revisamos el valor de la tercera (0), es menor que cinco y por tanto no se tiene que alterar el valor de la segunda.
Para lograr el resultado 12 a partir de 11.99 habría que hacer:
Código Delphi
[-]Resultado:= SimpleRoundTo(11.99, -1);
Si estas obteniendo otro comportamiento, sinceramente no sé que puede estar pasando...
Saludos