STRING同FLOAT之间的转换问题!(100分)

  • 主题发起人 主题发起人 ch_100755
  • 开始时间 开始时间
C

ch_100755

Unregistered / Unconfirmed
GUEST, unregistred user!
var
aa:string;
bb:double;
begin
aa:='12,345.00';
bb:=strtofloat(aa)//会出错
end;
用什么方式可以把带有逗号分隔的字符串转成数值,最好给源码!


 
你自己不会把逗号去掉吗?
鬼才知道是“,”还是“,”
 
我是从文本中读数据的,数据很多,它的数据格式都是这样子的,不可能让我一个个去吧!
 
改一下就可以了。

var
aa:string;
bb:double;

n:integer;
begin
aa:='12,345.00';

n:=pos(',',aa);
while not (n=0) do
begin
delete(aa,n,1);
n:=pos(',',aa);
end;

bb:=strtofloat(aa);//会出错
showmessage(floattostr(bb));
 
给你一个函数,把','号都去掉。
aa:=P_StrReplace(aa,',','',true,true);
bb:=strtofloat(aa);

函数如下:
function P_STRReplace(ss,SubStr,NewStr:string;RepAll,IgCase:Boolean):string;
var
a:TReplaceFlags;
begin
if RepAll=true then
include(a,rfReplaceAll);
if IgCase=true then
include(a,rfIgnoreCase);
Result:=stringReplace(ss,Substr,Newstr,a);
end;
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部