Hola
Puede ser:
1- que el campo cantidad sea integer y no float en tu tabla.
de ser asi, cambia estas lineas:
y esta:
Código Delphi
[-]dato:= StrToInt(Query1.Fields[0].Text);
2- puede ser al reves si el campo en la tabla es float:
cambialo asi:
Código Delphi
[-]dato:= StrToFloat(Query1.Fields[0].Text);
Saludos