Delphi 格式化函数 Format函数
function Format(const Format: string; const Args: array of const): string;
function Format(const Format: string; const Args: array of const;const FormatSettings: TFormatSettings): string;
Format参数是一个格式字符串,用于格式化Args里面的值的。Args是一个变体数组,即它里面可以有多个参数,而且每个参数可以不同。
如以下例子:
Format('my name is %6s',['wind']); //返回 my name is wind
Format里面可以写普通的字符串,比如'my name is',但有些格式指令字符具有特殊意义,比如"%6s"格式指令具有以下的形式:"%" [index ":"] ["-"] [width] ["." prec] type
它是以"%"开始,而以type结束,type表示一个具体的类型。中间是用来格式化type类型的指令字符,可选。
1、type类型的表示字符:
d 十制数,表示一个整型值
u 和d一样是整型值,但它是无符号的,如果它对应的值是负数,则返回一个2的32次方减去这个绝对值的数,如:
Format('this is %u',[-2]); //返回:this is 4294967294
f 对应浮点数
e 科学表示法,对应整型数和浮点数,比如:
Format('this is %e',[-2.22]); //返回:this is -2.22000000000000E+000,等一下再说明如果将数的精度缩小
g 这个只能对应浮点型,且它会将值中多余的数去掉,比如
Format('this is %g',[02.200]); //返回:this is 2.2
n 只能对应浮点型,将值转化为号码的形式。
Format('this is %n',[4552.2176]); //返回的是this is 4,552.22
注意有两点,一、只表示到小数后两位, 二、即使小数没有被截断,它也不会像整数部分一样有逗号来分开
m钱币类型,但关于货币类型有更好的格式化方法,这里只是简单的格式化,另外它只对应于浮点值
Format('this is %m',[9552.21]); //返回:this is ¥9,552.21
p 对应于指针类型,返回的值是指针的地址,以十六进制的形式来表示
例如:
var
X:integer;
p:^integer;
begin
X:=99;
p:=@X;
Edit1.Text:=Format('this is %p',[p]); //Edit1返回内容:this is 0012F548
end;
s 对应字符串类型
x 必须是一个整形值,以十六进制的形式返回,例如:
Edit1.Text:=Format('this is %X',[15]); //返回:this is F
2、格式化Type的指令: [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
Format('%d %d %d %0:d %d', [1, 2, 3, 4]) //返回1 2 3 1 2。
Format('%d %d %d %0:d %3:d', [1, 2, 3, 4]) //返回的是1 2 3 1 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
3、["-"] 指定参数向左齐,和[width]合在一起最可以看到效果:
Format('this is %-4d,yes',[12]); //输出是:this is 12 ,yes
4、["." 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,
Format('this is %.2e',[-2.22]); //去掉多余的0
来源:https://www.cnblogs.com/guorongtao/p/11970803.html
修改于:2019.12.02
Delphi 格式化函数 Format函数的更多相关文章
- Python 的格式化字符串format函数
阅读mattkang在csdn中的博客<飘逸的python - 增强的格式化字符串format函数>所做笔记 自从python2.6开始,新增了一种格式化字符串的函数str.format( ...
- 飘逸的python - 增强的格式化字符串format函数
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和 ...
- 格式化字符串format函数
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和 ...
- (转)飘逸的python - 增强的格式化字符串format函数
原文:https://blog.csdn.net/handsomekang/article/details/9183303 Python字符串格式化--format()方法-----https://b ...
- 增强的格式化字符串format函数
http://blog.csdn.net/handsomekang/article/details/9183303 自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓 ...
- 【Python开发】增强的格式化字符串format函数
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和 ...
- python - 增强的格式化字符串format函数
语法 它通过{}和:来代替%. “映射”示例 通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.form ...
- python字符串格式化方法 format函数的使用
python从2.6开始支持format,新的更加容易读懂的字符串格式化方法, 从原来的% 模式变成新的可读性更强的 花括号声明{}.用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序 ...
- python格式化字符串format函数
1. format可以接受无限个的参数,位置可以不按顺序: In [1]: "{} {}".format("hello","world") ...
随机推荐
- threeJS射线拾取机制及案例
前言 在浏览器中浏览三维图形的时候,有时想要与三维图形之间做一些点击事件和交互操作,其中比较常用的一个解决方案就是使用Raycaster对象来实现(射线拾取). 基础知识 世界坐标系:webGL中,世 ...
- pytest 教程
https://blog.csdn.net/lb245557472/article/details/90341297 https://blog.csdn.net/yyang3121/article/d ...
- Session过期,如何跳出iframe框架页的问题
跳出框架页,实际上是更改父页面地址.那么更改父页面地址很简单即: window.parent.location='/Login/loginindex'; 这里说session过期,那么浏览器端的任何请 ...
- Oracle分组函数之ROLLUP
功能介绍: 首先是进行无字段的聚合,然后在对字段进行从左到右依次组合后聚合 创建表: Create Table score ( classID Int, studentName ), subject ...
- zoj3229 Shoot the Bullet (有源汇最大流)
题目大意:文文要给幻想乡的女♂孩子们拍照,一共n天,m个女♂孩子,每天文文至多拍D[i]张照片,每个女♂孩子总共要被文文至少拍G[i]次.在第i天,文文可以拍c[i]个女♂孩子,c[i]个女♂孩子中每 ...
- CSP-S2019退役记/爆内存记
DAY 0 准备出发. 出发前教练说遇到事不慌,打电话,又听教练说了说历年赶车经历. 然后这趟路上居然没有什么大事. 在车上有些闲,于是就和其他人聊了会天,聊着聊着没意思,就用手机翻博客园. 这样就不 ...
- 【CF1210B】Marcin and Training Camp(贪心)
题意:有n个人,60种技能点,如果第i个人会第j种技能a[i]的二进制表示的第j位就是1,第i个人的价值是b[i] 如果有若干种技能i会j不会,i就会鄙视j 求一种至少两个人的选人方案使得价值和最大, ...
- vue中img图片加载中以及加载失败显示默认图片问题
加载中默认图片:主要是onload事件监听,data中定义变量 imgSrc :require('./default.png'): <div class="per-pic" ...
- 使用xorm将结构体转为sql文件
操作步骤 (1)定义结构体 type User struct { Id int //表id Name string //姓名 ...}12345(2)编写代码,执行自动增量同步(mysql为例) im ...
- _new__和__init__的区别
__new__是Python面向对象语言中一个很少用的函数,更多使用的是__init__这个函数.例如: class Book(object): def __init__(self, title): ...