var
 s:single begin
s:=strToFloat(edit1.Text);
showMessage(floatTostr(s));
end;=======这样居然会出错,
如果Edit1.text有小数点出现比如2.3,就出错,说2.3 is not a valid floating point value如果是整数就没错了 比如5太奇怪了吧,这哪里有错了,百思不得其解。。先谢谢

解决方案 »

  1.   

    嗯,有可能Edit1中的数据不符合要求,要不像楼上说的小数点的问题,要不有空格,加一个Trim函数试试你可以直接把Edit.Text换成'2.3',这样调试就会很快发现问题所在了。
      

  2.   

    var
     s:single //这里没有标点?能运行?edit1.Text:='2.3';
    s:=strtofloat(edit1.Text);
    showmessage(floattostr(s));
    没有错误,问题应该是输入法
      

  3.   

    如果你要的结果是2.3的话,s的类型还是用real的好
      

  4.   

    不完全同意楼上,DELPHI中标准浮点类型是double
      

  5.   

    试啦
    我也用直接在程序中赋值 ,比如Edit1.text:='2.3' 问题依旧var
     s:single //这里没有标点?能运行?==这个是我这边没加,程序里有的奇怪了,不过我的机子有个怪病:浮点的小数点显示出来就是 逗号, 不知道跟这有没关系
    不只是在Delphi中逗号,其他地方也一样,比如Windows计算器里,真TMD奇怪,不知道哪搞的这毛病 唉不过也不对啊,我都用ReplaceChar(**,',','.'),按道理有, 我也换成 . 了吧,奇怪,太奇怪了
      

  6.   

    >>浮点的小数点显示出来就是 逗号
    那就是这个问题了。
    我猜你用StrToFloat('2,3');
    就是正常的^_^
    请检查控制面板-区域选项中 数字 - 小数点 是不是“,”? 改为“.”就可以了。
      

  7.   

    windindance(风舞轻扬·白首为功名) ==太感谢了,困扰我很久的问题,就是不知道怎么去 , 终于去掉了StrToFloat('2,3');
    --不过在程序里我赋值的时候还是2.3 不是, 这个倒是有点奇怪就是了结帖了