CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  数据库及相关技术

我很笨,所发我遇到的问题也笨!!!

楼主jone7319(舍我其谁)2006-03-05 17:48:56 在 C++ Builder / 数据库及相关技术 提问

下面的代码很简单,就是每按一下BUTTON2就往DBGRID1里加入一条记录,但是问题来了,  
  新增加的记录中,第2个字段可正确显示为“123.45”,但每按一次增加一个记录,原记录就会变为  
  123.499969.....,也就是浮点数变为带了好多位小数。  
  如       datetime         f1  
            ........         123.49969....  
            ........         123.49969....  
            ........         123.45  
   
  总之,只有最新的记录才不会变,有没有办法让它不变呀?  
   
   
    void   __fastcall   TForm1::Button2Click(TObject   *Sender)  
  {  
                      DBGrid1->DataSource->DataSet->Append();  
                      DBGrid1->Columns->Items[0]->Field->AsDateTime=Now();  
                      DBGrid1->Columns->Items[1]->Field->AsFloat=123.45;  
  } 问题点数:20、回复次数:20Top

1 楼lurel(城市陌生人)回复于 2006-03-05 18:30:26 得分 5

呵呵,经常遇到的问题,教你一个方法,  
  看一下你连接数据库的控件BDE是DataBase1  
  注意一下,这里有一个属性需要设定一下.  
  例如:BDE的DataBase1看一下Params里面有一个ENABLE   BCD=FALSE,请把它改成TRUE,就OK了.  
  Top

2 楼0delphi(睡个舒服觉)回复于 2006-03-05 18:39:36 得分 0

用字符串   替换   浮点数就行了Top

3 楼jone7319(舍我其谁)回复于 2006-03-05 19:46:42 得分 0

>>呵呵,经常遇到的问题,教你一个方法,  
  看一下你连接数据库的控件BDE是DataBase1  
   
   
  我用ADOQuery查询  
  连接数据库用  
  ADOQuery1->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=D:\\test\\test.lmdb;Persist   Security   Info=False";  
  好象没用到DataBase1  
  Top

4 楼jone7319(舍我其谁)回复于 2006-03-06 17:30:16 得分 0

老妖来过没有?帮我看一下如何解决啊!Top

5 楼lurel(城市陌生人)回复于 2006-03-06 17:41:28 得分 5

ADOQuery1的EnableBCD置成TRUETop

6 楼jone7319(舍我其谁)回复于 2006-03-07 11:20:36 得分 0

设过了没用,还是老样子啊!Top

7 楼online30()回复于 2006-03-07 13:39:22 得分 0

格式化输入:sprintf(s,"%8.2f",f1);Top

8 楼xjq2003(xjq2003)回复于 2006-03-07 17:26:25 得分 0

void   __fastcall   TForm1::ADOTable1CalcFields(TDataSet   *DataSet)  
  {  
    //添加格式化的语句就可以了  
  }Top

9 楼kwokwinglau(每天前进1%)回复于 2006-03-07 18:48:48 得分 5

设置属性:     DBGrid1->Columns->Items[1]->DisplayFormat="0.00";  
  Top

10 楼kwokwinglau(每天前进1%)回复于 2006-03-07 18:52:18 得分 0

以上可以在DBGrid的Columns[1]的DisplayFormat里面直接打上:"0.00".  
   
   
  另外一种有效的方法:DBGrid1->Columns->Items[1]->Field->AsFloat=FormatFloat("0.00",123.45);Top

11 楼Hercules1947(南船)回复于 2006-03-09 14:07:21 得分 0

改成DBGrid1->Columns->Items[1]->Field->AsString=123.45;  
  还有以后注意定义时不要用单精度float用双精度doubleTop

12 楼Hercules1947(南船)回复于 2006-03-09 14:08:43 得分 0

最好转换一下DBGrid1->Columns->Items[1]->Field->AsFloat=FloatToStr(123.45);Top

13 楼Hercules1947(南船)回复于 2006-03-09 14:09:10 得分 0

最好转换一下DBGrid1->Columns->Items[1]->Field->AsString=FloatToStr(123.45);  
  Top

14 楼jone7319(舍我其谁)回复于 2006-03-10 10:47:43 得分 0

to   kwokwinglau(每天前进一点):  
  DBGrid1->Columns->Items[1]->DisplayFormat="0.00";  
  DBGrid1->Columns->Items[1]没有DisplayFormat这个属性!!!  
   
  DBGrid1->Columns->Items[1]->Field->AsFloat=FormatFloat("0.00",123.45);  
  这与DBGrid1->Columns->Items[1]->Field->AsFloat=123.45;没有区别,当前记录可以正常显示,等再添加新记录时,它就变了.这就是我的问题所在.  
   
   
  To   Hercules1947(南船)   (   )   等人:  
  转为String不是我要的结果,因为我还要利用DBGrid进行修改后同步保存到数据库的Float型字段.  
  Top

15 楼zzzl(不拉拉链)回复于 2006-03-10 15:47:42 得分 0

但你起的贴名很聪明Top

16 楼sunliwen780502(孙立文)回复于 2006-03-11 18:40:30 得分 5

这个可以通过设置数据库表的方式来解决.  
  尽量采用双精度double.Top

17 楼jone7319(舍我其谁)回复于 2006-03-11 21:08:51 得分 0

sunliwen780502(孙立文)   ,具体怎么设啊  
   
   
   
   
  Top

18 楼jone7319(舍我其谁)回复于 2006-03-11 22:02:04 得分 0

用DBGrid   显示数字型字段时,均存在这样的问题,如1.23就会变为1.229999.....  
  这样的问题大家是怎么解决的?  
  我原想在SQL中处理:如   select   a,b,int(c*100+0.5)/100.0     from   table   等方式解决,这个显示问题是解决了,但新的问题又来了,即我用int(c*100+0.5)/100.0得到的字段已不能对应数据库中的c字段,故不能通过在DBGrid中修改数据保存到数据库中.Top

19 楼jone7319(舍我其谁)回复于 2006-03-14 09:22:23 得分 0

问题没解决,路过高手帮帮忙,谢谢!Top

20 楼kwokwinglau(每天前进1%)回复于 2006-03-25 08:20:33 得分 0

DBGrid1->Columns->Items[1]->DisplayFormat="0.00";   //絕對有.Top

相关问题

  • RealSDK 开发遇到难题
  • ASP的产品发布系统,很简单的,但遇到几个小问题。
  • 开发PDA中遇到的问题
  • 初用触发器,遇到问题
  • lomboz在开发struts遇到的问题
  • 用C#开发ASP.net遇到的问题
  • informix 在.net开发中遇到乱码
  • myeclipse中开发struts遇到的问题
  • MyEclipse+hibernate3开发,遇到java.lang.ExceptionInInitializerError的错误!
  • b/s开发中遇到的问题??

关键词

  • 字段
  • 数据库
  • 解决
  • 属性
  • database
  • dbgrid
  • asfloat
  • displayformat
  • 记录
  • 看一下

得分解答快速导航

  • 帖主:jone7319
  • lurel
  • lurel
  • kwokwinglau
  • sunliwen780502

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo