**:
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]).
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); //連線字串
delphi Format格式化函式
format是乙個很常用,卻又似乎很煩的方法,本人試圖對這個方法的幫助進行一些翻譯,讓它有乙個完整的概貌,以供大家查詢之用 首先看它的宣告 function format const format string const args array of const string overload 事實...
delphi Format格式化函式
format是乙個很常用,卻又似乎很煩的方法,本人試圖對這個方法的幫助進行一些翻譯,讓它有乙個完整的概貌,以供大家查詢之用 首先看它的宣告 function format const format string const args array of const string overload 事實...
格式化,強調 數值格式化
聚合函式返回的的數值型別的值有個特點就是沒有被格式化。通過前面的帶 sum 聚合函式的示例,我們可以看到這一點 注意合計值 命令,或者在物件檢視器中選中 displayformat 屬性。在上節的示例中,格式化操作是針對一物件或物件內的表示式,在物件內僅有乙個表示式時它還能正常工作,不過當物件內不有...