Hola Delphius, en si lo que necesitaba era redondear cantidades a 3 decimales nada más, por ejemplo 1550,2345678 matemáticamente redondeado a 3 decimales sería 1550,235 el SimpleRoundTo me funciono ahora de acuerdo a lo que me dices no se si sería lo ideal.
Prueba ese número con los diferentes modos de redondeo por favor.
Como he dicho, el SimpleRoundTo SIEMPRE redondea al infinito. Y si se tiene en cuenta los posibles problemas que puede presentarse con números que no tienen representación binaria el resultado que puede obtenerse puede que no cuadre con el valor a esperar.
En principio SimpleRoundTo aplicaría el mal llamado método del Banquero (algo bastante raro ya que realidad los bancos no utilizan este algoritmo), o el de toda la vida en la que para el digito a precisión se le suma uno cuando el siguiente dígito es 5 o superior, o se "trunca" para 4 o inferior.
El punto está en que si se combina este algoritmo en una sucesión de operaciones matemáticas sencibles a la precisión de decimales que pueden estar afectadas al redondeo interno del procesador a la larga este método puede dar más sorpresas que alegrías.
RoundTo y Round por su parte tienen en cuenta el modo de redondeo que está activo al momento de uso por la palabra de control del procesador y pueden mitigar la pérdida de precisión ante dicha sucesión de operaciones y el redondeo interno.
Repito: debe ponerse mucho cuidado cuando se redondea y estar consciente de que se está usando el redondeo correcto en el momento correcto.
Como nota adicional: si los valores que estás obteniendo representan valores monetarios lo más habitual es que adoptes un criterio de precisión fija. Esto permite que internamente se opere con aritmética entera que es absolutamente precisa (mientras no se produzca desbordamiento).
Saludos,