怎样判断字符是不是数字?(20分)

  • 主题发起人 主题发起人 linke
  • 开始时间 开始时间
L

linke

Unregistered / Unconfirmed
GUEST, unregistred user!
是不是要把字符转化为asc码,如果时,怎么转换啊?
问了一个很菜的问题!
 
try
strtoint(a);
except
showmessage('error');
end;
 
字符 in ('0123456789')
 
asc('value') between
 
function IsNumber(aChar: Char): Boolean;
begin
result := Bool(aChar in ['0'..'9']);
end;
 
if (aChar>='0') and (aChar<='9') then
 
try
strtoint(a);
except
showmessage('error');
end;
是最简便的方法,如果不是小数的话。
如果是小数,就用StrToFloat。
function IsNum(s: string):Float;
begin
try
Result := StrToFloat(s);
except
showmessage('不是数字不能转换,或者数字中含有其他字符');
end;
end;
 
不过Pipi的方法更牛[:(]
佩服Pipi
 
这样就牛了?吓死我了
 
xixi, 大皮又出手了?[:D]
 
还是用geluyx的方法吧!
要不然的话多位数就出错了1
 
function TryStrToFloat(const S:string; out Value:Extended):Boolean;
function TryStrToFloat(const S:string; out Value:Single):Boolean;
function TryStrToFloat(const S:string; out Value:Double):Boolean;
函数返回True  out Value 为S转换的值
函数返回False out Value 不确定

if TryStrToFloat('12314.12',E) then

 
var
i: integer;
a: string;
begin
a := '242.42344234';
for i:=1 to Length(a) do
begin
if (not (A in ['.','0'..'9'])) then
begin
ShowMessage('Error');
exit;
end;
if A='' then exit;
end;
end;
 
to Pipi;
简单介绍一下实现方法?
别笑,我看不懂。
 
function TryStrToFloat(const S:string; out Value:Extended):Boolean;
function TryStrToFloat(const S:string; out Value:Single):Boolean;
function TryStrToFloat(const S:string; out Value:Double):Boolean;
函数返回True  out Value 为S转换的值
函数返回False out Value 不确定


procedure TForm1.BitBtn1Click(Sender: TObject);
var
e:Extended;
begin
if TryStrToFloat(edit1.Text ,E) then
showmessage('ok')
end;
 
呵!!!
用ORD这个函数吧,和VB里的ASC是一样的。
 
Delphi5以上的版本都有IsNumeric
Uses IdGlobal;
 
这么热闹啊,我觉得乖乖兔的方法最好
 
用try方法的比较完整
其他的方法基本上都没有考虑到负数的情况
 
后退
顶部