有关指针指向变量地址几个问题,妖哥请进!
请问各位大侠们帮我看看这段代码是怎么回事,为什么没有转换出来的数值?
我想把一个小数处理一下,
如: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
[解决办法]