回覆列表
  • 1 # 滴逃逃

    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]);

  • 中秋節和大豐收的關聯?
  • 小日本常用語?