我在SQL理设置的字段是char类型,所以有的时候操作员录入数据时手动错误,22.5录成了22..5,我希望回车的时候能提示出错,让操作员重新录入,如何写?
或者有时操作员只写了个小数点.进去,这样的时候也提示错误,反正只要不是正确数字、小数这种的,都提示错误。
因为在最后我要对这一行字段的数据进行计算平均值,当有这种不符合的数据时,计算平均值时就会出错误。
或者有时操作员只写了个小数点.进去,这样的时候也提示错误,反正只要不是正确数字、小数这种的,都提示错误。
因为在最后我要对这一行字段的数据进行计算平均值,当有这种不符合的数据时,计算平均值时就会出错误。
判断str是否符合double类型
function IsNumber(str: string): boolean;
var
code:integer;
num:double;
begin
Val(str, num, code);
if Trim(str) = '' then
str := '0'
else if code > 0 then
begin
Result := False;
if Trim(str) = '' then
str := '0'
else
str := LeftStr(str,code-1);
end;
Result := code = 0;
end;
Edit1.OnKeyPress:var
TempValue: Double;
begin
if Key = #13 then
try
TempValue := StrToFloat(Edit1.Text);
except
ShowMessage('输入数据格式非法!');
Edit1.Clear;
Edit1.SetFocus;
end;
end;
TempValue: Double;
begin
if (Key = #13) and not tryStrToFloat(Edit1.Text,TempValue) then
begin
ShowMessage('输入数据格式非法!');
Edit1.Clear;
Edit1.SetFocus;
end;
end;
begin
try
strToFloat(inputStr);
except
on EconvertError do
begin
result := False ;
exit;
end;
end;
Result := True;
end;
zxf_feng的我没有试过。