主题:一个类型转换的问题!请大家帮忙!
本人最近在单位因为工作需要开发了一个远程SQL数据库查询软件,现在基本功能和界面都做好了,就是还有一个数据类型问题一直困扰着我。
在数据库里某张表内,有一个单位1-12月份的收入支出数,系统是保留2位小数的,也就是精确到了0.01元,我用C++BUILD的StringGrid组件来显示提取出来的数据,在最下面的一行,进行合计,
显示某行时我直接使用数据表的变量值输出,
StringGrid1->Cells[x][y]=Table1->Fields[x]->Value;
这时候数据在表格里显示都正常,
但是汇总这些数据时出了问题,因为有小数,所以我定义了一个float型的变量,然后用一个循环来计算合计数,
float count;
for(i=0;i<Table1->Fieldcount;i++)
count=count+Table1->Fields[i]->Value;
但是计算完后,变量count总会莫名其妙也会多出一些小数,有时到了小数点后4,5位,而且和正确的合计数相差0.0几,不知道是为什么,我使用格式化数字输出,还是结果不正确。
请问大家这是为什么呢,应该如何解决?
在数据库里某张表内,有一个单位1-12月份的收入支出数,系统是保留2位小数的,也就是精确到了0.01元,我用C++BUILD的StringGrid组件来显示提取出来的数据,在最下面的一行,进行合计,
显示某行时我直接使用数据表的变量值输出,
StringGrid1->Cells[x][y]=Table1->Fields[x]->Value;
这时候数据在表格里显示都正常,
但是汇总这些数据时出了问题,因为有小数,所以我定义了一个float型的变量,然后用一个循环来计算合计数,
float count;
for(i=0;i<Table1->Fieldcount;i++)
count=count+Table1->Fields[i]->Value;
但是计算完后,变量count总会莫名其妙也会多出一些小数,有时到了小数点后4,5位,而且和正确的合计数相差0.0几,不知道是为什么,我使用格式化数字输出,还是结果不正确。
请问大家这是为什么呢,应该如何解决?