Si fuera como dices, el mensaje obetnido sería este:
error '1' is not a valid floating point value
pero el mensaje no usa comillas dobles (tipográficas) sino las comillas simples de delphi con el valor del campo dentro.
El error dice que algun registro está vacío, es decir, no tiene nada, ni siquiera un cero patatero. Es típico cuando dejas el campo "cantidad" sin rellenar y se guarda un valor nulo (null).
La solución según tu código:
Código Delphi
[-]
if not IBDSArtFactura2CANTIDAD.IsNull then xx:=xx+IBDSArtFactura2CANTIDAD.AsFloat;
Otra forma de hacerlo:
Código Delphi
[-]
ibquery1.sql.text := 'select Sum(cantidad) from tabla where codigo = :codigo and cantidad is not null';
ibquery1.parambyname('codigo').Asxxxx := loque sea;
ibquery.Open;
Resultado := ibquery.Fields[0].AsFloat;
Por supuesto la tabla debe estar guardada (que no esté en edición).