請問各位大大:
當我把IntToStr改成FloatToStr時,我執行後最後一行卻會出現誤差項
X:2.11595619697539E-38 Y:1.05797809848769E-37 Z:1.12103877145985E-43
X:4.23191239395078E-38 Y:1.05797809848769E-37 Z:1.12103877145985E-43
X:4.23191239395078E-38 Y:0 Z:0
X:4.23191239395078E-38 Y:0 Z:0
X:4.23191239395078E-38 Y:0 Z:0
X:2.11595619697539E-38 Y:0 Z:0
不知道為何會有這些多餘的誤差項出現,我該如何將這些誤差項消除呢??
執行後的結果 Usb:0 X:5 Y:0 Z:0 Usb:0 X:10 Y:0 Z:0 Usb:0 X:10 Y:0 Z:0 Usb:0 X:10 Y:0 Z:0 Usb:0 X:10 Y:0 Z:0 Usb:0 X:5 Y:0 Z:0 Usb:0 X:0 Y:0 Z:25 Usb:0 X:0 Y:0 Z:25 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:-20 Usb:0 X:0 Y:0 Z:-20 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:-5 Usb:0 X:0 Y:0 Z:-5 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:-5 Y:0 Z:0 Usb:0 X:-10 Y:0 Z:0 Usb:0 X:-10 Y:0 Z:0 Usb:0 X:-10 Y:0 Z:0 Usb:0 X:-10 Y:0 Z:0 Usb:0 X:-5 Y:0 Z:0 Usb:0 X:0 Y:25 Z:0 Usb:0 X:0 Y:25 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:25 Usb:0 X:0 Y:0 Z:25 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:-25 Usb:0 X:0 Y:0 Z:-25 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:-25 Z:0 Usb:0 X:0 Y:-25 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:0 Y:0 Z:0 Usb:0 X:2.1159561969E-38 Y:1.057978098E-37 Z:1.12103877145985E-43 Usb:0 X:4.2319123939E-38 Y:1.057978098E-37 Z:1.12103877145985E-43 Usb:0 X:4.2319123939E-38 Y:0 Z:0 Usb:0 X:4.2319123939E-38 Y:0 Z:0 Usb:0 X:4.2319123939E-38 Y:0 Z:0 Usb:0 X:2.1159561969E-38 Y:0 Z:0 <textarea class="cpp" rows="10" cols="60" name="code">void __fastcall TForm1::Button8Click(TObject *Sender)
{
Label2->Caption ="Step3 is running!Please wait!";
int count,count1,count2;
double X1,Y1,Z1;
double X2,Y2,Z2;
double X3,Y3,Z3;
count2=Memo3->Lines->Count;
Memo3->Clear() ;
for(count=0,count1=0;countProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" IntToStr(0) "\t"
"X:" FloatToStr(float(X3/4)) "\t"
"Y:" FloatToStr(float(Y3/4)) "\t"
"Z:" FloatToStr(float(Z3/4)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" IntToStr(0) "\t"
"X:" FloatToStr(float(X3/4)) "\t"
"Y:" FloatToStr(float(Y3/4)) "\t"
"Z:" FloatToStr(float(Z3/4)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" IntToStr(0) "\t"
"X:" FloatToStr(float(X3/4)) "\t"
"Y:" FloatToStr(float(Y3/4)) "\t"
"Z:" FloatToStr(float(Z3/4)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
}
else if((X3<(-100))||(Y3<(-100))||(Z3<(-100)))
{
AnsiString str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/3)) "\t"
"Y:" FloatToStr(float(Y3/3)) "\t"
"Z:" FloatToStr(float(Z3/3)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/3)) "\t"
"Y:" FloatToStr(float(Y3/3)) "\t"
"Z:" FloatToStr(float(Z3/3)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/3)) "\t"
"Y:" FloatToStr(float(Y3/3)) "\t"
"Z:" FloatToStr(float(Z3/3)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
}
else if ((X3<(-50))||(Y3<(-50))||(Z3<(-50)))
{
AnsiString str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/2)) "\t"
"Y:" FloatToStr(float(Y3/2)) "\t"
"Z:" FloatToStr(float(Z3/2)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/2)) "\t"
"Y:" FloatToStr(float(Y3/2)) "\t"
"Z:" FloatToStr(float(Z3/2)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
}
else if((X3>150)||(Y3>150)||(Z3>150))
{
AnsiString str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/4)) "\t"
"Y:" FloatToStr(float(Y3/4)) "\t"
"Z:" FloatToStr(float(Z3/4)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/4)) "\t"
"Y:" FloatToStr(float(Y3/4)) "\t"
"Z:" FloatToStr(float(Z3/4)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/4)) "\t"
"Y:" FloatToStr(float(Y3/4)) "\t"
"Z:" FloatToStr(float(Z3/4)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/4)) "\t"
"Y:" FloatToStr(float(Y3/4)) "\t"
"Z:" FloatToStr(float(Z3/4)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
}
else if((X3>100)||(Y3>100)||(Z3>100))
{
AnsiString str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/3)) "\t"
"Y:" FloatToStr(float(Y3/3)) "\t"
"Z:" FloatToStr(float(Z3/3)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/3)) "\t"
"Y:" FloatToStr(float(Y3/3)) "\t"
"Z:" FloatToStr(float(Z3/3)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" IntToStr(0) "\t"
"X:" FloatToStr(float(X3/3)) "\t"
"Y:" FloatToStr(float(Y3/3)) "\t"
"Z:" FloatToStr(float(Z3/3)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
}
else if((X3>50)||(Y3>50)||(Z3>50))
{
AnsiString str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/1)) "\t"
"Y:" FloatToStr(float(Y3/2)) "\t"
"Z:" FloatToStr(float(Z3/2)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" IntToStr(0) "\t"
"X:" FloatToStr(float(X3/2)) "\t"
"Y:" FloatToStr(float(Y3/2)) "\t"
"Z:" FloatToStr(float(Z3/2)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/3)) "\t"
"Y:" FloatToStr(float(Y3/2)) "\t"
"Z:" FloatToStr(float(Z3/2)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/4)) "\t"
"Y:" FloatToStr(float(Y3*0)) "\t"
"Z:" FloatToStr(float(Z3*0)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/5)) "\t"
"Y:" FloatToStr(float(Y3*0)) "\t"
"Z:" FloatToStr(float(Z3*0)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float(X3/6)) "\t"
"Y:" FloatToStr(float(Y3*0)) "\t"
"Z:" FloatToStr(float(Z3*0)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
}
else
{
AnsiString str="Usb:" FloatToStr(0) "\t"
"X:" FloatToStr(float (X3/10)) "\t"
"Y:" FloatToStr(float (Y3/2)) "\t"
"Z:" FloatToStr(float (Z3/2)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" IntToStr(0) "\t"
"X:" FloatToStr(float (X3/5)) "\t"
"Y:" FloatToStr(float (Y3/2)) "\t"
"Z:" FloatToStr(float (Z3/2)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" IntToStr(0) "\t"
"X:" FloatToStr(float (X3/5)) "\t"
"Y:" FloatToStr(float (Y3*0)) "\t"
"Z:" FloatToStr(float (Z3*0)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" IntToStr(0) "\t"
"X:" FloatToStr(float (X3/5)) "\t"
"Y:" FloatToStr(float (Y3*0)) "\t"
"Z:" FloatToStr(float (Z3*0)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" IntToStr(0) "\t"
"X:" FloatToStr(float (X3/5)) "\t"
"Y:" FloatToStr(float (Y3*0)) "\t"
"Z:" FloatToStr(float (Z3*0)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
count1=count1 1;
str="Usb:" IntToStr(0) "\t"
"X:" FloatToStr(float (X3/10)) "\t"
"Y:" FloatToStr(float (Y3*0)) "\t"
"Z:" FloatToStr(float (Z3*0)) "\t";
Application->ProcessMessages();
Memo3->Lines->Insert(count1,str);
}
}
</textarea>
編輯記錄
taishyang 重新編輯於 2007-06-26 09:25:53, 註解 將文章分類成[問題]‧