delphi简单问题,在线等待......

wwyysha 2002-12-18 03:34:53
字符转载转换成real型如何判断可以转化?
比如
str:string;
p:real;

//可以转换
str:='10.1';
p:=StrToFloat(str);
//报错
str:='#0.1';
p:=StrToFloat(str);
可不可以在转换前
先判断一下??
不用节位的方法的。。。。。。。
...全文
43 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chutian 2002-12-18
  • 打赏
  • 举报
回复
var
str: string;
p: real;
code: Integer;
begin
Val(str, p, code);
if code <> 0 then
...
else
... //p既轉換后的值
end;
Randy_Mic 2002-12-18
  • 打赏
  • 举报
回复
同意自己写函数。
lws0472 2002-12-18
  • 打赏
  • 举报
回复
可以做一个函数,一劳永逸

function isnum(str : string):boolean;
var
i : integer;
begin
result := true;
if length(str) < 1 then exit;
for i := 1 to length(str) do
begin
if (not isnumeric(str[i])) and (str[i] <> #46) then
begin
result := false;
exit;
end;
end;
end;
wwyysha 2002-12-18
  • 打赏
  • 举报
回复
多谢
我在做一个接口
goodloop 2002-12-18
  • 打赏
  • 举报
回复

try ...except
chutian 2002-12-18
  • 打赏
  • 举报
回复
uses Dialogs;
var

I, Code: Integer;
begin
{ Get text from TEdit control }
Val(Edit1.Text, I, Code);
{ Error during conversion to integer? }
if Code <> 0 then
MessageDlg('Error at position: ' + IntToStr(Code), mtWarning, [mbOk], 0);
else
Canvas.TextOut(10, 10, 'Value = ' + IntToStr(I));

end;


//Val procedure
goodloop 2002-12-18
  • 打赏
  • 举报
回复
isnumeric(c:char);
不合适的
hansion3406 2002-12-18
  • 打赏
  • 举报
回复
没了...
killlaoli 2002-12-18
  • 打赏
  • 举报
回复
isnumeric 只能判断字符是不是数字,‘0’..‘9’

考虑加入异常处理

try
p:=StrToFloat(str);
except
//报个错之类的
end;
Billy_Chen28 2002-12-18
  • 打赏
  • 举报
回复
isnumeric
pcbaby 2002-12-18
  • 打赏
  • 举报
回复
if isnumeric(str) then ……

5,931

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧