一个小问题

fstao 1999-12-29 07:42:00
假如有两个数据:“00000”和“12”,我想把两个数相加,得出“00012”。我
是这样做:
procedure TForm1.Button1Click(Sender: TObject);
var
a,b:real;
c:string;
begin
a:=00000;
b:=12;
c:=FloatToStr(a)+FloatToStr(b);
Edit2.Text:=c;
end;
但得出的结果是:012,而不是00012。如何修改上面的语句呢?

...全文
978 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
supershan 2000-01-03
  • 打赏
  • 举报
回复
用 case ... of end; 进行判断不够六位在前面加'0'补位
fee 2000-01-03
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
a,b:real; //a,b:string;
c:string;
begin
a:=00000; '//'00000'
b:=12; //'12';
c:=FloatToStr(a)+FloatToStr(b); //c:=a+b;
Edit2.Text:=c;
end;
但得出的结果是:012,而不是00012。如何修改上面的语句呢?

tiger 1999-12-30
  • 打赏
  • 举报
回复
你这两句
S := IntToStr(Trunc(StrToFloat(R1) + StrToFloat(R2)));
S := Copy(S, Length(S) - 4, 5);
根本不能实现"不足位补0"的功能
barton 1999-12-30
  • 打赏
  • 举报
回复
没闹明白你的意思。
1.‘00000’和‘12’是两个串,怎么加?你的程序却是'0'+'12',那当然是012啦!
2.你是否要将结果变成等长的串,不足位补0?如果是这样,那当然是
S := IntToStr(Trunc(StrToFloat(R1) + StrToFloat(R2)));
S := Copy(S, Length(S) - 4, 5);
tiger 1999-12-29
  • 打赏
  • 举报
回复
a := 00000.0;
b := 12.0;
c := a+ b;
Edit2.Text := Format('%0.5f', [c])
kxy 1999-12-29
  • 打赏
  • 举报
回复
FormatFloat('00000',a+b); // a,b可以是整数 返回 '00012';

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧