Siempre habrá que hacer comprobaciones, como por ejemplo si tiene 3, 5 o 4 decimales.
Otra forma:
Multiplica por 10^(Nº de decimales), después te quedas con la parte entera (Trunc), y al final divides por 10^(nº de decimales)
Si no recuerdo mal 10^N es la función IntPower.
Código Delphi
[-]
var x:Extended;
decimales:integer;
begin
x:= 122.345;
decimales := 3;
if decimales > 0 then
x := Trunc(x * IntPower(10.0,decimales)) / IntPower(10.0,decimales);
saludos