怎样实现前导0的输出,用Format()怎么不行? (100分)

  • 主题发起人 主题发起人 wht_hm
  • 开始时间 开始时间
?怎么提了两次?试试FormatFloat函数。
 
我的常用方法:
例如:123(integer) 想变成 00123(str)
可以: Copy( intToStr(100000+ 123),2,5)
就是先通过 加一个大整数获得那些零,然后变成字符串输出


 
建议你仔细读一下 Format 函数的帮助信息。下面给出具体的例子:

var
asTemp: String;
begin
asTemp := Format('%.4d', 6);
{ ... }
end;

这时,输出 asTemp 字符串的结果就是“0006”,前面有三个前导零。因为我定义
输出精度为 4 个数字宽度。

 
看来我也得好好看一下帮助了:)
 
function qd0(const count,num:integer):String;
Var
s1,s2:String;
begin
s1:=IntToStr(Num);
s2:='00000000000000000000';
if (Length(s1)>=count) then
s2:=''
else if(count>20) then
SetLength(S2,20-Length(s1))
else
SetLength(S2,count-Length(s1));
Result:=S2+S1;
end;
 
查一查stringofchar
别忘了给分!
 
用stringofchar是完全可以的了!
 
hehe,我常使用的一个函数:
//int 为待处理整数,long 为最终长度(含前导0)
function FrontZero(int, long: integer): string;
var
i, l: integer;
begin
Result := inttostr(int);
l := Length(Result);
if l < long then
begin
SetLength(Result, long);
for i := 1 to long - t do
Result := '0';
end;
end;
 
多人接受答案了。
 
后退
顶部