第二十四章 Caché 函數大全 $JUSTIFY 函數
大綱
參數
描述
expression
width
decimal
`$JUSTIFY`和`$FNUMBER`
示例
在指定寬度内右對齊表達式,四舍五入到指定的小數位數。
expression 要右對齊的值。它可以是數字值、字元串文字、變量名稱或任何有效的ObjectScript表達式。
width 表達式要在其中右對齊的字元數。正整數或計算結果為正整數的表達式。
decimal 可選-小數位數。正整數或計算結果為正整數的表達式。Caché将表達式中的小數位數四舍五入或填充到此值。如果指定DECIMAL,則Caché會将表達式視為數字。
$JUSTIFY傳回在指定寬度内右對齊的表達式指定的值。可以包括DECIMAL參數以将寬度内的數字小數對齊。
$JUSTIFY(expression,width):2參數文法在width内右對齊表達式。它不執行任何表達式轉換。表達式可以是數字或非數字字元串。
$JUSTIFY(expression,width,decimal):3參數文法将表達式轉換為規範數字,将小數點後的四舍五入或零位小數轉換為十進制,然後在width内右對齊所得的數值。如果expression是非數字字元串,則Caché會将其轉換為0,對其進行填充,然後對其右對齊。
$JUSTIFY識别目前語言環境的DecimalSeparator字元。它根據需要添加或删除DecimalSeparator字元。 DecimalSeparator字元取決于語言環境;通常,對于美國格式的語言環境,它是一個句點(。),對于歐洲格式的語言環境,通常是一個逗号(,)。若要确定語言環境的DecimalSeparator字元,請調用以下方法:
通常,$JUSTIFY用于格式化帶小數位的數字:每個數字都具有相同的小數位數字,并且數字右對齊,以便DecimalSeparator字元在數字列中對齊。 $JUSTIFY對于使用WRITE指令輸出格式化值特别有用。
要右對齊的值,可以選擇将其表示為具有指定數量的小數位的數字。
如果需要字元串對齊,請不要指定小數。表達式可以包含任何字元。 $JUSTIFY對表達式進行右對齊,如width中所述。可以指定空字元串(“”)來建立指定寬度的空白字元串。
如果需要數字對齊,請指定小數。如果指定了十進制,則$JUSTIFY将表達式轉換為規範數字。它解析前導的正負号,并删除前導和尾随零。它在第一個非數字字元處截斷表達式。如果表達式以非數字字元(例如貨币$符号)開頭,則$JUSTIFY會将表達式值轉換為0。
在$JUSTIFY将表達式轉換為規範數後,将其規範填充零或四舍五入為小數位的十進制數,然後對結果進行右對齊,如width中所述。 $JUSTIFY無法識别NumericGroupSeparator字元,貨币$符号,多個DecimalSeparator字元或尾随的加号或減号。
右對齊轉換後的表達式的寬度。如果width大于表達式的長度(在數字和小數位數轉換之後),則Caché右對齊寬度,并根據需要用空白填充左填充。如果width小于表達式的長度(在數字和小數位數轉換之後),則Caché将width設定為表達式值的長度。
将width指定為正整數。寬度值0,空字元串(“”)或非數字字元串被視為寬度0,這意味着Caché将width設定為表達式值的長度。
小數位數。如果表達式包含更多小數位數,則$JUSTIFY将小數部分四舍五入到該小數位數。如果表達式包含較少的小數位數,則$JUSTIFY将零部分填充到該小數位數,并在需要時添加一個十進制分隔符。如果十進制= 0,則$JUSTIFY将表達式四舍五入為整數值并删除十進制分隔符。
如果表達式值小于1,則$JUSTIFY在DecimalSeparator字元之前插入前導零。
$DOUBLE值INF,-INF和NAN由$JUSTIFY不變地傳回,而與十進制值無關。
$JUSTIFY和$FNUMBER
可以使用$FNUMBER格式化顯示的數字。 $JUSTIFY和$FNUMBER都可以四舍五入(或零填充)到指定的小數位數。 $FNUMBER也可用于添加NumericGroupSeparator字元。但是,請注意以下幾點:
使用$JUSTIFY将數字右對齊後,$FNUMBER無法格式化數字。 ($FNUMBER将前導空格解釋為非數字字元。)
一旦添加了NumericGroupSeparator字元或在貨币符号前加了$JUSTIFY,就不能對數字進行數字對齊。 ($JUSTIFY将NumericGroupSeparators或貨币符号解釋為非數字字元。)
是以,要正确添加NumericGroupSeparators,四舍五入小數位,在貨币符号前添加字首以及将結果數字右對齊,請使用$FNUMBER來對NumericGroupSeparators進行四舍五入和插入。然後,可以将$JUSTIFY與2參數文法一起使用,以将結果字元串右對齊:
以下示例對字元串執行右對齊。不執行數字轉換:
以下示例使用指定數量的小數位執行數字右對齊:
下面的示例使用$DOUBLE值INF和NAN執行數字右對齊: