0.6读出的结果是1,为什么? ( 积分: 200 )

  • 主题发起人 主题发起人 xuke12345
  • 开始时间 开始时间
X

xuke12345

Unregistered / Unconfirmed
GUEST, unregistred user!
大家新年好,有一个问题请教:
表中有一个数字型字段其内容为0.6,当客户端通过ClientDataSet接收服务器端DataSetProvider所反回的值时进行了取整变为1,怎样才能让客户端ClientDataSet接收到的值为表中的真实值0.6呢!
 
大家新年好,有一个问题请教:
表中有一个数字型字段其内容为0.6,当客户端通过ClientDataSet接收服务器端DataSetProvider所反回的值时进行了取整变为1,怎样才能让客户端ClientDataSet接收到的值为表中的真实值0.6呢!
 
取整了当然就为1了,这样的问题我看不懂的啊!
 
取整变为1??
不取整叻,当然就是表中的真实值啦。
 
没有进行取整的任何操作,只通过ClientDataSet接收到的数据就自动进行取整了?这是什么原因呢?
 
不要用Integer取代了double 或数据字段用 asInteger 取代 AsFloat
 
没有呀,我用一个dataset与ClientDataSet关联后,用一个DBgrid再与dataset关联后,dbgrid显示的数据就已经进行了取整!
 
是不是格式的问题?
 
是不是設置了數據顯示格式?設個斷點看看
 
如果你用的数据库来存放这个0.6很大的可能是数据表中字段的设置有问题!
 
兄弟们:
客户端代码如下:soap_obj:=DM.HTTPRIO1 as IRemoteDl;
Dm.ClientDataSet1.Data:=soap_obj.Return_goods_decl_data(decl_no.Text);
DataSource1.dataset:=Dm.ClientDataSet1;
DbGrid1.DataSource:=DataSource1;
在DbGrid1中0.6显示1了!
服务器端函数Return_goods_decl_data定义代码如下:
function TRemoteDl.Return_goods_decl_data(decl_no: string): OleVariant;
begin
with Frm_Dm.DMdo
begin
AdoQuery.sql.Clear;
AdoQuery.sql.Add('select * from ciqusr.t_decl_goods where decl_no='''+decl_no+'''');
AdoQuery.open;
if AdoQuery.RecordCount>0 then
begin
result:=dsp.Data;
end;
end;
end;
 
后退
顶部