在BDE中把Enabled BCD设为True

解决方案 »

  1.   

    在数据表的字段中定义小数位数
    如果是Sql server 可
    decimal (18,2)
      

  2.   

    a:float;a:= Round(a*100)/100或用format函数
      

  3.   

    可按如下例子:
     Table.Open;
     TNumericField(Table.FieldByName('Price')).DisplayFormat:='0.00';
    即可。
      

  4.   

    那你就在把数据写入字段前对数据进行格式化,如:
    var a:double;a:=1.23456789;
    a:=StrToFloat(FormatFloat('#.##',a); // 这时 a=1.23;
    table1.Fieldbyname('fieldname').asfloat:=a;
      

  5.   

    最好是用FLOAT型的数据类型。。(sqlserver中)
      

  6.   

    我在建的是用Paradox7的表,字段如下
    字段名   字段类型
    Price      N
      

  7.   

    你可以把数据类型定义成字符串类型。在读出和写入的时候进行转换一下就可。
    var a:double;
        s:String;a:=1.23456789;
    s:=FormatFloat('#.##',a); // 这时 s='1.23';
    table1.Fieldbyname('fieldname').asstring:=s; // 写入;s:= table1.Fieldbyname('fieldname').asstring  // 读出, s='1.23' ;
    a:=StrToFloat(s); // a=1.23 ;
      

  8.   

    难道只有Apollo47(阿波罗)所说的方法吗?
      

  9.   

    这可能是 paradox 的原因。只要数据读出并格式化后,不发生错误。这并不是什么大问题。要不然你换数据库。