我有困难!有人懂floating数值类型不匹配问题吗?
我有这么个问题!
下面的函数实现Send_Buffer缓冲区向Received_Buffervar缓冲区发送数据,
k:已经在另一个单元赋值,在本函数ShowMessage(IntToStr(k));中已经证明.
但是继续执行后出错,错误信息:Project clinet1.exe raised exception
class EinvalidOp with messsage 'invalid floating point operation',
process stoped.use step or run to continue.
看起来是数值类型不匹配问题,但我不清楚,请你指点!
unit main;
var
k:integer; //k是小循环次数
procedure Tmain_form.ToolButton2Click(Sender: TObject);
Var
b:double; //b是比率
s,j,i,x:integer; i是大循环,j是小循环,x是大循环次数,k是小循环次数,s是累积数
begin
ShowMessage(IntToStr(k));
x:=Memo2.Lines.Count-1;
//k:=10;
s:=0;
for i:=0 to x do
for j := 1 to k do
begin
if Not hClientSocket.socket.Connected then Begin
Memo3.Lines.Add('ͨÐŶ˿ڴ¦ÓÚ¶Ï¿ª×´Ì¬£¬ÇëÁ¬½Óºó·¢ËÍ');
Exit;
End;
Strcopy(Send_Buffer,PChar(Memo2.Lines[i]));
Received_len:=CmdSend(@Send_Buffer,@Received_Buffer);//
If Received_len<0 Then
Memo3.Lines.Add('ͨÐŶ˿ڴ¦ÓÚ¶Ï¿ª×´Ì¬£¬ÇëÁ¬½Óºó·¢ËÍ')
Else
Memo3.Lines.Add('Comm:='+Received_Buffer);
Memo1.Lines.Add(IntToStr(i+1)+'successful');
s:=s+1;
end;
b:=s/(k*(x+1));
Memo1.Lines.Add('totle '+IntToStr(s)+' successful');
Memo1.Lines.Add(FloatToStr(b*100)+'% successful');
end