我在ACCESS的数据库中有两个表,其中分别都有单精度格式的字段,我在两个窗口上用Stringgrid显示字段中的数据:
stringgrid1.Cells[13,2]:=adodataset1.fieldbyname('NAME').AsString ;
可奇怪的是,同样是0.78的数值,在一个表格里正常的显示为0.78,而在另一个里面显示成 0.77999997138977 ,为什么?百思不得其解啊。显示不正常的那个表格我用了ONDRAWCELL事件:
procedure TfUserInput.StringGrid1DrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  //浅蓝色为当前选择的行
  if (acol=0) or (arow=0) then
    exit;
  if arow=nowrow then
  self.StringGrid1.Canvas.Brush.Color :=clSkyBlue;
  self.StringGrid1.Canvas.FillRect(rect);
  self.StringGrid1.Canvas.TextOut(rect.Left ,rect.Top ,stringgrid1.Cells[acol,arow] );
end;
别的两个窗口代码几乎完全一样,可是为什么显示不同???