C++ Buider 运行错误
我用的TStringGrid,TButton1,TButton2,TEdit1,TEdit2,用了两个Click事件,运行没有问题。
但是如果用一个TButton来实现,运行后会报错:
Project Project1.exe raised exception class EConverError with message ''' is not a valid floating point value'.Process stopped.Use Step or Run to continue.
//---------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double a1,b1,sum1;
for(int row=1;row<=6;++row)
{
a1=StringGrid1->Cells[0][row].ToDouble();
sum1+=a1;b1=sum1/6;
Edit1->Text=FloatToStr(b1);
}
}
//---------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
double a2,b2,sum2;
for(int row=1;row<=6;++row)
{
a2=StringGrid1->Cells[1][row].ToDouble();
sum2+=a2;b2=sum2/6;
Edit2->Text=FloatToStr(b2);
}
}
//---------------------------------------
[解决办法]
谨防 StringGrid1->Cells[0][row] 出现空值的情况。
try{ a1 = StringGrid1->Cells[0][row].ToDouble();}catch (...){ a1 = 0.0}
[解决办法]
sum1,sum2,sum3,sum4为累加,却没有归0,换句话说就是点一些Button就会多累加一次,是不是你就是想要这个效果?如果是这样程序运行就会不确定,会出错很正常,只能对运算公式给出是否符合要求的条件才能正常运算。如果不是你的本意,那么你的程就有问题,也就是说公式写的有问题。k1=(vic-vin*vch)/(vii-vin*vin);是无法运算的。