var skSum:variant; zfSum:variant; sumCe:variant; sqlstr:='select sum(skje) as skje from sz where carNumber=''+carNO+''and skdate>=#'+timestart+'# and skdate<=#'+timeend+'#'; ...........adoquery操作语句,没问题,略去 sksum:=adoquery2.FieldValues['skje']; sqlstr:='select sum(zfje) as zfje from sz where carNumber=''+carNO+''and zfdate>=#'+timestart+'# and zfdate<=#'+timeend+'#'; .......... zfsum:=adoquery3.FieldValues['zfje']; if sksum>zfsum then begin sumCe:=sksum-zfsum; edit5.Text:='收大于支,差额'+sumCe; end; skje和zfje在数据库中是单精度的.运行时出错,错误显示在"edit5.Text:='收大于支,差额'+sumCe;"这行,大体意思是可变类型转换错误。怎么改呢?前边的语句应该是没有问题.一个大虾提出floattostr(sumCe)可是不行,不论sumCe是variant还是extended