Hola. Si declaras la variable CANTIDAD como INTEGER, no esperes que funcione con números fraccionarios...
Debes definirla de tipo
double.
Código Delphi
[-]
procedure TF_FACTURACION.DESHACERClick(Sender: TObject);
VAR CODIGO: String; CANTIDAD: Double;
begin
CODIGO:=dm.Q_DET_FACT.FieldValues['CODIGO'];
CANTIDAD:=dm.Q_DET_FACT.FieldValues['CANTIDAD'];
DM.CONSULTA.CLOSE;
DM.CONSULTA.SQL.Clear;
DM.CONSULTA.SQL.Add('UPDATE STOCK SET CANTIDAD=CANTIDAD+:PARCANTIDAD WHERE COD_STOCK= :PARCODIGO');
DM.CONSULTA.ParamByName('ParCODIGO').AsString:=CODIGO;
DM.CONSULTA.ParamByName('ParCANTIDAD').AsFloat:=CANTIDAD;
DM.CONSULTA.ExecSQL;