很多软件都能实现就是 金额:137但是存的值为:137.00,字段类型是float不是varchar,这是怎么实现的?

解决方案 »

  1.   

    我知道用dbgrideh的displayformat:='0.00'可以实现,但是在打印的时候,仍然是整数,我希望就是这个值能够写到字段中,我的字段是numeric(18,2)类型的.
      

  2.   

    numeric類型保存的時候是不會以0.00的格式保存的。
    你想在數据庫以0.00的格式保存,用varchar類型試試吧,
    取出來的時候轉換一下就可以了。
      

  3.   

    不是的,在数据库中保存的是137.00.
    我就是希望数字137在打印和显示的时候都是137.00,如果这个数字本身是小数比如137.234我可以通过roundto(137.234,-2)得到137.23,但是如果本身就是137我没有办法得到137.00应该怎么做?
      

  4.   

    设置数据集中该字段的DisplayFormat为0.00
      

  5.   

    数据库字段类型为float,保存时*1.0
      

  6.   

    设置数据集中该字段的DisplayFormat为0.00 
    是dbgrideh中的那个?dbgridedh1.columuns[0].displayformat:='0,00'?这个并没有加入到数据库中,我不单是想实现显示137为137.00而且希望就是打印的时候也是137.00
    adoquery我们怎么发现有这个displayformat属性?
      

  7.   

    function Format(const Format: string; const Args: array of const): string; $[SysUtils.pas
    功能 返回按指定方式格式化一个数组常量的字符形式
    说明 这个函数是我在Delphi中用得最多的函数,现在就列举几个例子给你个直观的理解
    "%" [索引 ":"] ["-"] [宽度] ["." 摘要] 类型
    Format('x=%d', [12]);      //'x=12' //最普通
    Format('x=%3d', [12]);     //'x= 12' //指定宽度
    Format('x=%f', [12.0]);     //'x=12.00' //浮点数
    Format('x=%.3f', [12.0]);    //'x=12.000' //指定小数
    Format('x=%8.2f'[12.0])     //  'x=     12.00' ;
    Format('x=%.*f', [5, 12.0]); //'x=12.00000' //动态配置
    Format('x=%.5d', [12]);     //'x=00012' //前面补充0
    Format('x=%.5x', [12]);      //'x=0000C' //十六进制
    Format('x=%1:d%0:d', [12, 13]); //'x=1312' //使用索引
    Format('x=%p', [nil]);     //'x=00000000' //指针
    Format('x=%1.1e', [12.0]); //'x=1.2E+001' //科学记数法
    Format('x=%%', []); //'x=%' //得到"%"
    S := Format('%s%d', [S, I]); //S := S + StrToInt(I); //连接字符串
      

  8.   

    Format('x=%8.2f'[12.0])    //  'x=    12.00' ; 前面八个后面两个
      

  9.   

    你这个问题其实不是要显示,而是要打印效果,用DisplayFormat实现效果后,你完全可以在打印的时候进行判断,我自己写的打印函数就是动态判断每列的隐藏/显示,宽度,对齐方式,格式化的格式,对应报表的每一列
    我虽然用的也是DBGridEh,但是不是用DisPlayFormat这个属性,而是把DBGrid对应的数据集的TField转化为TBCDField,TBCDField是有DisplayFormat这个属性的,这样无论对应DBGrid,DBGridEh或者其他的组件都通用
      

  10.   

    用pos判断‘.’再加上‘.00’,这样不行吗?