DGGrid显示小数的有关问题
DGGrid显示小数的问题
我的数据库中数据显示为 :

但是在程序运行后,DBGrid显示为:

求解是什么原因及解决方案。
------解决思路----------------------
有几种方法可以实现,一是自画格子内容,用FormatFolat输出指定位数的小数。二是通过设定字段的显示格式。三是通过SQL语句转换。
就拿第二种方法来说,简单实现:
------解决思路----------------------
是的,这个和浮点数在数据库中的存储格式有关,浮点数在数据库字段中是“近似值”存储,不是精确的值,使用的时候转换一下就可以了
比较理想的方法是直接在SQL语句中处理:
我的数据库中数据显示为 :
但是在程序运行后,DBGrid显示为:
求解是什么原因及解决方案。
------解决思路----------------------
有几种方法可以实现,一是自画格子内容,用FormatFolat输出指定位数的小数。二是通过设定字段的显示格式。三是通过SQL语句转换。
就拿第二种方法来说,简单实现:
ADOQuery1->Close();
ADOQuery1->SQL->Text = "select 字段名 from 表名";
ADOQuery1->Open();
((TFloatField *)ADOQuery1->FieldByName("字段名"))->DisplayFormat = "#####.##";
------解决思路----------------------
是的,这个和浮点数在数据库中的存储格式有关,浮点数在数据库字段中是“近似值”存储,不是精确的值,使用的时候转换一下就可以了
比较理想的方法是直接在SQL语句中处理:
SELECT mon_txt,FORMAT(mon_data,'##.0#') as 本期值, FORMAT(targ_value,'##.0#') as 目标值, FORMAT(year_data,'##.0#') as 本期累计 FROM dbo_stat_graph_data ORDER BY period_no;
//#表示显示大于0的数,0表示0必须显示