救救我! (10分)

  • 主题发起人 主题发起人 苏晴
  • 开始时间 开始时间

苏晴

Unregistered / Unconfirmed
GUEST, unregistred user!
t:= '+1.3884678E-0'+#13#10;
Delete(t,Length(t)-1,1);

与t:= '+1.3884678E-0'究竟有什么不同?

问什么下面的t可以转化为实数,而上面的却不行?上面的Delete函数执行的结果应该
和下面的t是一样的呀!
//faint
救救我!
 
应该-2而不是-1

t:= '+1.3884678E-0'+#13#10;
Delete(t,Length(t)-1,2);
 
我需要将t:= '+1.3884678E-0'+#13#10转化为浮点数,谁能帮我?
 
t:= '+1.3884678E-0'+#13#10;
Delete(t,Length(t)-1,2);
Result:=StrToFloat(t);
 
谢谢!你的这个命令式是对的!
因为我一只用Delete(t,Length(t)-2,2)或Delete(t,Length(t)-1,1),却没想到会是Delete(t,Length(t)-1,2),
因为#13#10明明有两个字符的呀![:)]
 
为什么会是Delete(t,Length(t)-1,2)呢?
 
为什么是减2而不是减1,主要原因应该是由于Pascal字符串的起始索引位置为1而引出的错觉:)
Delete(var str: string
index, count:integer)是从str的第index个位置删除count个字节,
假如我有一个串str='123456',串长为6,我想去掉最后2个字符变成'1234';
那么index的位置很自然应该是5,删除的字符数为2,对吧?那么5等于6减多少呢?:)

如果pascal字符串和C字符串一样都是从0开始索引的话,Delete(str,length(str)-2,2)
就是正确的做法了:)
 
haha, I know, thank u!
 

Similar threads

S
回复
0
查看
835
SUNSTONE的Delphi笔记
S
S
回复
0
查看
765
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部