首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

有关指针指向变量地址几个小问题,妖哥请进

2013-04-09 
有关指针指向变量地址几个问题,妖哥请进!请问各位大侠们帮我看看这段代码是怎么回事,为什么没有转换出来的

有关指针指向变量地址几个问题,妖哥请进!
请问各位大侠们帮我看看这段代码是怎么回事,为什么没有转换出来的数值?
我想把一个小数处理一下,
如:85.25555保留两位小数为85.26

为什么就没有返回的内容呢?
Label2组件里面没有内容啊?什么原因呢?



相关代码如下:
void Dispose(AnsiString num ,AnsiString num_new)
{
num_new="";
int n=StrLen(num.c_str());
char a[32];
char *p=num.c_str();
        for( int i=0; i<32; i++ )
        {
                if(i>n)
                        a[i]=NULL;
                else
                        a[i]=*(p+i);

        }
char *q=num_new.c_str();
        for(int j=0; j<32; j++)
        {
                *(q+j)=a[j];
                if(a[j]=='.')
                        {
                                *(q+j)=a[j];       //小数点
                                *(q+j+1)=a[j+1];   //小数点第一位
                                if(a[j+3]<5)       //小数点第二位
                                        *(q+j+2)=a[j+2];    //四舍
                                else
                                        *(q+j+2)=a[j+2]+1;  //五入
                                break;
                        }
        }
//return;
}
//--------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
        AnsiString temp;
        Dispose(Label1->Caption,temp);
        Label2->Caption=temp;     //没有显示的数值啊


}
//--------------------------------------- 指针?地址?变量
[解决办法]
只是保留小数?为何不用formatfloat呢..

FormatFloat("0.00",StrToFlat(Label1->Caption) + 0.05);

或者RoundTo

[解决办法]

引用:
只是保留小数?为何不用formatfloat呢..

FormatFloat("0.00",StrToFlat(Label1->Caption) + 0.005);


或者RoundTo

上面错了..应该是+0.005.
[解决办法]
楼主是在练习写代码吗?
1、如果是想实现功能的话,考虑使用FloatToStrF();
比如要实现你说的功能,那就:FloatToStrF(85.25555, ffFixed,5,2) 
2、如果楼主是想玩代码的话,你那个函数写的很混乱,让下面的高手给你改改吧

热点排行