我初用的delphi6,不知道有没有函数可以做到。
比如字符串是'1230','1.235','0.659','2121'等表示数字就返回true.
否则含有其他字母符号或者汉字就返回false;

解决方案 »

  1.   

    用try啊,可以转换成数字的就为真,出现异常就为假啊
      

  2.   

    似乎没有函数,我想可以
    1)从字符串中依次取出每个字符,判断是否是数字或小数点。
    2)试一试b:=false;
    try
      strtoint(f);
      b:=true;
    finally
    end;应该可以!
      

  3.   

    你可以用字符串转换函数阿strtofloat当他出错时就不是数字否则是数字
      

  4.   

    try
    strtofloat(str1)
    except
    //error
    end
      

  5.   

    function Check(Val : String) : BOolean;
    var
      Val : double;
    begin
      Result := True;
      try
        Val := StrTofloat(Val);
      except
        Result := False;
      end;
    end;
    Check(1230);
    Check(1.235);
    Check(0.699);
    Check(2121);
    搞定.
      

  6.   

    if Pos(' ', S) > 0 do
        S[Pos(' ', S)] := '0';
    if Pos('-', S) > 0 do
        S[Pos('-', S)] := '0';
    for i := 1 to length(S) do
        if not((S[i] >= '0') and (S[i] <= '9')) then
         result:=False;
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var str:string;
    str1:string;
    i,j:integer;
    begin
    str:='1234567890e';j:=0;
    try
    for i:=1 to length(str) do
      begin    if strtoint(copy(str,i,1)) in [0..9] then
        begin
           str1:=copy(str,i,1);
           j:=j+1;
        end;
      end;
       if j=length(str) then
         label1.Caption:='true';
    except
       label1.caption:='false';
    end;end;
      

  8.   

    前面各位兄弟所说的其实都对,但是大家忽略了一点,在可以不用到Delphi出错机制的前提下最好不要用,因为Delphi在调试程序的时候会报错,当然,运行可执行程序的时候是不会报错的,但这样就显得有点不完美。我上面写的有点小笔误,应该是这样:
    S:=Trim(S);
    if Pos(',', S) > 0 do
        S[Pos(',', S)] := '0';
    if Pos('-', S) > 0 do
        S[Pos('-', S)] := '0';
    for i := 1 to length(S) do
        if not((S[i] >= '0') and (S[i] <= '9')) then
         result:=False;
      

  9.   

    呵呵,应该这样:
    S:=Trim(S);
    if Pos(',', S) > 0 do
        S[Pos(',', S)] := '0';
    if Pos('-', S) > 0 do
        S[Pos('-', S)] := '0';
    for i := 0 to length(S)-1 do
        if not((S[i] >= '0') and (S[i] <= '9')) then
         result:=False;
      

  10.   


    Function IsInt(str: String): Boolean;
    Var
      i, x: integer;
    Begin
      For i := 1 To Length(str) Do
        Begin
          x := Ord(str[i]);
          Case x Of
            46, 48..57:
              result := True;      Else
            Begin
              result := false;
              break;
            End;
          End;
        End;
    End;================================================================
    我是中国鹰派!
    拒绝日货!打倒小日本!
      

  11.   

    呵呵,应该这样:
    S:=Trim(S);
    if Pos('.', S) > 0 do
        S[Pos('.', S)] := '0';
    if Pos('-', S) > 0 do
        S[Pos('-', S)] := '0';
    for i := 1 to length(S) do
        if not((S[i] >= '0') and (S[i] <= '9')) then
         result:=False;
      

  12.   

    (*//
    声明:
      本人保证所提供的方法是所知的最好方法
      解答问题纯属公益性质
      所以请不要向我追问
      如果有时间自会关注后续问题
    分析:<这是比较常规的问题,最好自己去搜索>
    问题:如何判断一个字符串是合法的数值表达?
    设计:Zswang
    日期:2002-10-08
    方案1:使用TryStrToFloat()函数
    方案2:参考http://zswang.51.net/function/zsfunc06.htm
    附言:来自http://zswang.51.net/document/zsdoc02.txt
    //*)━━━━━━━━━━━━━━━━━━━━━
    首部  function StrToFloat(const S: string): Extended; $[SysUtils.pas
    功能  返回字符串S转换成浮点数
    说明  字符串非浮点数表达时将引起异常
    参考  function SysUtils.TextToFloat
    例子  var E: Extended; begin E := StrToFloat(Edit1.Text); end;
    ━━━━━━━━━━━━━━━━━━━━━
    首部  function StrToFloatDef(const S: string; const Default: Extended): Extended; $[SysUtils.pas
    功能  返回字符串S转换成浮点数
    说明  字符串非浮点数表达时则返回默认值Default
    参考  function SysUtils.TextToFloat
    例子  var E: Extended; begin E := StrToFloatDef(Edit1.Text, 0); end;
    ━━━━━━━━━━━━━━━━━━━━━
    首部  function TryStrToFloat(const S: string; out Value: Extended): Boolean; overload; $[SysUtils.pas
    首部  function TryStrToFloat(const S: string; out Value: Single): Boolean; overload; $[SysUtils.pas
    首部  function TryStrToFloat(const S: string; out Value: Double): Boolean; overload; $[SysUtils.pas
    功能  返回字符串S转换成浮点数Value是否成功
    说明  字符串非浮点数表达时返回False并且Value将输出为不确定的值
    参考  function SysUtils.TextToFloat
    例子
    ///////Begin TryStrToFloat
    procedure TForm1.Button1Click(Sender: TObject);
    var
      E: Extended;
    begin
      CheckBox1.Checked := TryStrToFloat(Edit1.Text, E);
      Edit2.Text := FormatFloat('', E);
    end;
    ///////End TryStrToFloat
    ━━━━━━━━━━━━━━━━━━━━━
      

  13.   

    终极答案:
    Function IntString(Str:String):Boonlean;
    var i:integer;
        S:String;
    begin
    S:=Trim(Str);
    if Pos('.', S) > 0 do
        S[Pos('.', S)] := '0';
    if Pos('-', S) > 0 do
        S[Pos('-', S)] := '0';
    for i := 1 to length(S) do
        if not((S[i] >= '0') and (S[i] <= '9')) then
         result:=False;
    end;
      

  14.   

    终极答案:
    Function IntString(Str:String):Boonlean;
    var i:integer;
        S:String;
    begin
    S:=Trim(Str);
    if Pos('.', S) > 0 then
        S[Pos('.', S)] := '0';
    if Pos('-', S) > 0 then
        S[Pos('-', S)] := '0';
    for i := 1 to length(S) do
        if not((S[i] >= '0') and (S[i] <= '9')) then
         result:=False;
    end;
      

  15.   

    forgot(让一切随风)兄可真是热心啊!!
    ================================================================
    我是中国鹰派!
    拒绝日货!打倒小日本!
      

  16.   

    forgot(让一切随风)兄可真是热心啊!!
    ================================================================
    我是中国鹰派!
    拒绝日货!打倒小日本!