首页 > 其他分享 >Delphi Format 格式化数字

Delphi Format 格式化数字

时间:2024-08-05 14:38:46浏览次数:11  
标签:12 格式化 数字 Format Delphi Args prec 浮点数

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=%.*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); //连接字符串\

function Format(const Format: string; const Args: array of const): string;

  Format字符串说明:
  "%" [index ":"] ["-"] [width] ["." prec] type
  (1) 格式化字符串必须以%开头
  (2) [index ":"] 索引指的是Args参数列表中要显示的每一项的序号。比如:Args是
                  ['a', 'c'],那么'a'的索引就是0,而'c'的索引就是1,而且由于只有
                  两项,所以就不会出现大于1的索引值。
                  Format('%2:s %1:s %0:s', ['1st', '2nd', '3rd']);
                  结果:'3rd 2nd 1st'
  (3) ["-"] 这个标识符的作用是当要显示的字符的个数少于[width]时,在右边填补空格;
            如果没加上["-"],则在左边填补空格。
            Format('(%4s)', ['aa']); 结果:'  aa'
  (4) [width] 宽度
              规定了要显示的字符的个数。如果要显示的宽度大于[width],则按实际的
              宽度来显示;反之,则填补空格或按要求填补其它字符。
  (5) ["." prec] 精度
                 这是针对浮点数来说的,一般就是指小数点后的位数。
  (6) type 类型(见下面)

  type的可能值有下列这些:
  (1) d 有符号十进制数
        Args必须是有符号整型数。如果在格式化字符串中还加入了["." prec],则如果Args
        的长度如果小于给出的精度数时,在前边填补0;如果大于精度数,按实际长度显示。
        Format('(%.3d)', [99]); 结果:'(099)'

  (2) u 无符号十进制数
        Args必须是无符号整型数。其它特性与d一样。

  (3) e 科学技术法
        用科学技术法显示数据,形式大致如下:'-d.ddd...E+ddd'。
        Args必须是一个浮点数。如果是一个负数,则在最前面显示一个符号;在小数点前面
        总是显示一位数字;包括小数点前面的数字在内,数字的个数由["." prec]来确定,
        如果没有指定["." prec],则默认为15位精度。如果实际的数字长度超出了指定的
        ["." prec],则刚刚超出的那一位数字四舍五入。指数符号E后面总是要跟着加号或
        减号,并且在后面至少跟着三位数字。

  (4) f 固定的
        Args必须为浮点数,转换后的形式大致是'-ddd.ddd...'这样的。
        如果要转换的是负值,则前面有一个负号。转换后的数字,在小数点后面的数字的个数
        由["." prec]决定。如果没有指定["." prec],默认为2位精度。

  (5) g 一般的
        Args必须为浮点数。
        被转换后的数字总是尽可能的简短(有可能是f或e形式的)。有重要意义的数字的长度
        由["." prec]来决定,默认为15位(包括整数位和小数位)。数字前后的0都将被去掉,
        小数点也只有在必要的时候才显示出来。如果小数点左边的数字小于等于指定的精度,
        并且整个值大于或等于0.00001的时候,才使用f的显示格式,否则使用e(科学技术法)

  (6) n Args必须是浮点数。形式和f是一样的,不同的是会显示千位符,如:1,123,444

  (7) m 货币类型
        Args必须是浮点数。能够显示货币符号,可以通过“控制面板”来设置。小数点后
        的位数由["." prec]决定,如果没用["." prec],则默认2位。

  (8) p 指针
        Args必须是一个指针值。
        将指针转换为8个字符的十六进制字符串。

  (9) s 字符串
        Args必须是字符,字符串或PChar值。
        如果指定了["." prec],并且字符串的实际长度大于["." prec],则从左到右截取
        精度指定数量的字符串,其余的删除。

  (10) x 十六进制
         Args必须是一个整型数。
         如果使用了["." prec],不足部分要用0补齐。

  注意:[index ":"] [width] ["." prec]可以使用这样的格式:
        Format('%*.*f', [8, 2, 123.456])
        等价于:Format('%8.2f', [123.456]).

转载自:天空的博客(http://wymsxty.blog.163.com/blog/static/77790858201262963921161/)

标签:12,格式化,数字,Format,Delphi,Args,prec,浮点数
From: https://www.cnblogs.com/ynmsnc/p/18343178

相关文章

  • Delphi 快捷键
    分类快捷键解释备注组件设计类Escape选择当前组件容器 Shift+Click选择多个组件;选择窗体 Tab选择下一个组件 Shift+Tab选择上一个组件 方向键选择此方向的下一个组件 Ctrl+方向键将所选组件的位置移动1个像素 Shift+......
  • Delphi ExtractFilePath
    1、取路径1、取路径。 1.1 ExtractFilePath之类的返回路径。原文链接(https://www.cnblogs.com/ZhouXiHong/archive/2007/01/30/634210.html)ExtractFileDrive:返回完整文件名中的驱动器,如"C:"ExtractFilePath:返回完整文件名中的路径,最后带“/”,如"C:\test\"ExtractFileDir:返......
  • Delphi 线程
    不是原创,只是看到好的内容复制了保存下来,留着学习。 CreadteThred参考,同步参考,WaitForSingleObject参考,互斥参考, 一、在Delphi中使用多线程有两种方法:调用API、使用TThread类;使用API的代码更简单.1、调用API:CreateThread()functionCreateThread( lpThr......
  • 【已解决】戴尔 Inspiron 5457 和 5557 启动报错:Invalid configuration information -
    场景我使用的是戴尔15-5557的笔记本电脑,在某次开机的时候系统提示:Invalidconfigurationinformation-pleaserunSETUPprogram.虽然的点击Continue可以正常进入系统,但是每次开机都要来上这么一下真的很烦人,于是想着解决一下。试错过程1.BIOS调整刚开始以为是自己BIOS......
  • 为什么我在 html 页面的格式化段落中没有收到 google gemini 响应
    我在我的django中使用googlegeminiapi,一切都很顺利,在终端中生成的Gemini响应非常完美,两个段落和所有段落之间都有空格,但是当我将此响应传递到html页面时,所有格式都消失了,那里两段之间没有空格,我不知道为什么它在响应中产生不必要的星星**,请告诉我如何修复它。......
  • EFCore执行自定义SQL时格式化错误:Input string was not in a correct format.
      记录一下EFCore执行自定义SQL报System.FormatException异常的问题,这个异常可能是“Inputstringwasnotinacorrectformat.”,也可能是其它格式化异常,比如:System.ArgumentException:“Formatoftheinitializationstringdoesnotconformtospecificationstartingat......
  • 如何将 f 字符串转换为 .format()?
    我有这个函数,它使用f字符串来打印许多变量:defmyfunc(*args,**kwargs):if'fruit'and'juice'inkwargs:print(f"Ilike{'and'.join(args)}andmyfavoritefruitis{kwargs['fruit']}")print(f"M......
  • Linux 分区和格式化
    分区常用命令行工具:fdisk:适用于MBR分区表gdisk:适用于GPT分区表parted:适用于MBR和GPT分区表,功能更强大。现在基本都用GPT分区表了。列出所有物理磁盘及其分区表:sudoparted-l在上一步中选择你要进行分区操作的磁盘,例如/dev/sda,然后进入交互式分区编辑界面......
  • python格式化字符串漏洞
    在python中格式化字符串的方法有如下四种第一种:%操作符,沿袭了C语言的风格>>>name='Bob'>>>'Hello,%s'%name"Hello,Bob"第二种:string.Template,利用标准库中的模板字符串类进行字符串格式化.>>>name='Bob'>>>fromstringimport......
  • OAF export data from VO in xlsx format
    InthisarticlewearegoingtoseehowtoexportviewobjectinMicrosoftofficeexcelxlsxformatToexportwithxlsxformatfewbasicthingsneededareJarfiles(Listofjari'veusedisshowninbelowscreenshot)ForbetterunderstandingI’lli......