永发信息网

delphi Format函数 中的变量

答案:2  悬赏:10  手机版
解决时间 2021-01-23 15:09
format(%3d,[564215]);那个3可不可以用变量呢?怎么用?
最佳答案
Var
  I: Integer;
  S: String;
begin
  I := 7;
  S := Format('%%.%dd',[I]);  //S='%.7d'
  Caption :=Format(S,[564215]);
全部回答
format('% * . * f',[10,4,num]); 解析: 返回num变量格式化后的字符。整数位为10位,小数后为4位。 例如:num=1234567890.123456,处理后为“1234567890.1234”的字符串。 format函数,返回一个指定格式的字符。 function format(const format: string; const args: array of const): string; 具体说明: const fromat:string :格式信息 const args: 数组。 主要是格式信息比较麻烦。 格式化信息主要有以下元素组成: "%" + [索引 ":"] + ["-"] + [宽度] + ["." 摘要] + 类型 格式化信息功能总结如下: format('x=%d', [12]); //'x=12' //最普通 format('x=%3d', [12]); //'x= 12' //指定宽度 format('x=%f', [12.0]); //'x=12.00' //浮点数 format('x=%.3f', [12.0]); //'x=12.000' //指定小数 format('x=%8.2f'[12.0]) // 'x= 12.00' ; format('x=%.*f', [5, 12.0]); //'x=12.00000' //动态配置 format('x=%.5d', [12]); //'x=00012' //前面补充0 format('x=%.5x', [12]); //'x=0000c' //十六进制 format('x=%1:d%0:d', [12, 13]); //'x=1312' //使用索引 format('x=%p', [nil]); //'x=00000000' //指针 format('x=%1.1e', [12.0]); //'x=1.2e+001' //科学记数法 format('x=%%', []); //'x=%' //得到"%" s := format('%s%d', [s, i]); //s := s + strtoint(i); //连接字符串 格式化信息详解: index ":"]这个要怎么表达呢,看一个例子 format('this is %d %d',[12,13]); 其中第一个%d的索引是0,第二个%d是1,所以字符显示的时候是这样 this is 12 13 而如果你这样定义: format('this is %1:d %0:d',[12,13]); 那么返回的字符串就变成了this is 13 12。现在明白了吗,[index ":"] 中的index指示args中参数显示的顺序还有一种情况,如果这样 format('%d %d %d %0:d %d', [1, 2, 3, 4]) 将返回1 2 3 1 2。 如果你想返回的是1 2 3 1 4,必须这样定: format('%d %d %d %0:d %3:d', [1, 2, 3, 4]) 但用的时候要注意,索引不能超出args中的个数,不然会引起异常如 format('this is %2:d %0:d',[12,13]); 由于args中只有12 13 两个数,所以index只能是0或1,这里为2就错了[width] 指定将被格式化的值占的宽度,看一个例子就明白了 format('this is %4d',[12]); 输出是:this is 12,这个是比较容易,不过如果width的值小于参数的长度,则没有效果。 如: format('this is %1d',[12]); 输出是:this is 12 ["-"]这个指定参数向左齐,和[width]合在一起最可以看到效果: format('this is %-4d,yes',[12]); 输出是:this is 12 ,yes ["." prec] 指定精度,对于浮点数效果最佳: format('this is %.2f',['1.1234]); 输出 this is 1.12 format('this is %.7f',['1.1234]); 输出了 this is 1.1234000 而对于整型数,如果prec比如整型的位数小,则没有效果反之比整形值的位数大,则会在整型值的前面以0补之 format('this is %.7d',[1234]); 输出是:this is 0001234] 对于字符型,刚好和整型值相反,如果prec比字符串型的长度大则没有效果,反之比字符串型的长度小,则会截断尾部的字符 format('this is %.2s',['1234']); 输出是 this is 12,而上面说的这个例子: format('this is %e',[-2.22]); 返回的是:this is -2.22000000000000e+000,怎么去掉多余的0呢,这个就行啦 format('this is %.2e',[-2.22]);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
哲学对社会变革的作用,首先体现在A.指明社会
九九星物流(酒仙桥北路5号京物大厦)地址在哪
清丰县劳动就业管理中心地址好找么,我有些事
城际速递地址在什么地方,我要处理点事
清丰县劳动就业训练中心地址在什么地方,想过
清丰县大中专毕业生就业办公室怎么去啊,我要
清丰县社会失业保险中心地址在什么地方,想过
天霖星洲国际货运代理公司地址在什么地方,我
京粮物流东北物流中心地址在哪,我要去那里办
清丰县人才交流服务中心怎么去啊,我要去那办
金凤翔货运代理有限公司地址在什么地方,我要
方达思物流(香港)有限公司(北京代表处)地址在
Our community appears more beautiful with
sex board 最新地址是什么?9月后我就进不去了
京城工业物流(东部物流交易中心)地址在哪,我
推荐资讯
重装系统 linux系统怎么启动
意趣网吧地址在哪,我要去那里办事
They are going to watch a football match
单选题ADP转化为ATP需要A.Pi、酶、腺苷和能量
A young man applied for a job as a farmhan
阅读以下材料,回答问题。材料:2012年中央经
锡盟广丰嘉程店地址有知道的么?有点事想过去
我的脸非常白,皮肤特别好,但手很黑,尤其是关
我不小心把psp2000的 恢复出厂设置 给摁了,
临洮农商银行地址有知道的么?有点事想过去
诊断为B2型胸腺瘤己有近半年时间,,含发病症
连城县四堡中学怎么去啊,我要去那办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?