redondeando una moneda

Tengo el siguiente código para redondear la moneda.

function MyRound(value :currency) : integer;

begin
  if value > 0 then
    result := Trunc(value + 0.5)
  else
    result := Trunc(value - 0.5);
end;

funcionó bien hasta ahora, mi problema ahora es si quiero redondear una moneda como999999989000.40 está dando un valor negativo ya que Truc toma int y MyRound también devuelve int.

Mi posible solución es convertir la moneda en una cadena y obtener la cadena antes. y convertir la cadena de nuevo a la moneda. ¿Es este un enfoque correcto? Soy nuevo en Delpi, así que por favor me ayudan.

Respuestas a la pregunta(4)

Su respuesta a la pregunta