套件 | flash.globalization |
類別 | public final class CurrencyFormatter |
繼承 | CurrencyFormatter Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
CurrencyFormatter 類別使用作業系統提供的資料與功能,根據特定地區設定與貨幣類型慣例,格式化貨幣值。 貨幣符號、負號、小數分隔符號、分組分隔符號、分組樣式小數分隔符號和其他元素的位置,會根據地區設定而異。
如果作業系統支援要求的地區設定,會根據要求的地區設定之慣例與預設值,來設定屬性與貨幣類型。若無法使用所要求的地區設定,則會根據後援或預設系統地區設定 (可使用 actualLocaleIDName
屬性擷取) 設定屬性。
由於所用的使用者設定、作業系統提供的格式化樣式,以及不支援所要求地區設定時所用的後援地區設定之不同,即使使用相同的地區設定 ID,不同使用者也會看到不同的格式化結果。
屬性 | 定義自 | ||
---|---|---|---|
actualLocaleIDName : String [唯讀]
此 CurrencyFormatter 物件所使用的實際地區設定 ID 名稱。 | CurrencyFormatter | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
currencyISOCode : String [唯讀]
所用的實際地區設定之三個字母的 ISO 4217 貨幣代碼。 | CurrencyFormatter | ||
currencySymbol : String [唯讀]
所用實際地區設定的貨幣符號或字串。 | CurrencyFormatter | ||
decimalSeparator : String
用來格式化或解析含有小數部分的貨幣金額之小數分隔字元。 | CurrencyFormatter | ||
digitsType : uint
定義格式化貨幣金額時所用的位數字元集。 | CurrencyFormatter | ||
fractionalDigits : int
小數分隔符號後可出現的最大位數。 | CurrencyFormatter | ||
groupingPattern : String
說明已格式化貨幣金額字串中,分組分隔符號的位置。 | CurrencyFormatter | ||
groupingSeparator : String
用於分組分隔符號的字元或字串。 | CurrencyFormatter | ||
lastOperationStatus : String [唯讀]
此 CurrencyFormatter 物件執行的最近作業狀態。 | CurrencyFormatter | ||
leadingZero : Boolean
指定若小數分隔符號左邊沒有整數位數,是否要在格式化的貨幣金額中補上開頭的零。 | CurrencyFormatter | ||
negativeCurrencyFormat : uint
表示負值貨幣金額格式化樣式的數值。 | CurrencyFormatter | ||
negativeSymbol : String
格式化負值金額時所使用的負號。 | CurrencyFormatter | ||
positiveCurrencyFormat : uint
表示正值貨幣金額格式化樣式的數值。 | CurrencyFormatter | ||
requestedLocaleIDName : String [唯讀]
傳送到此 CurrencyFormatter 物件建構函式的所要求地區設定 ID 名稱。 | CurrencyFormatter | ||
trailingZeros : Boolean
指定格式化後的貨幣金額是否包含結尾零。 | CurrencyFormatter | ||
useGrouping : Boolean
格式化貨幣金額時,啟用分組分隔符號。 | CurrencyFormatter |
方法 | 定義自 | ||
---|---|---|---|
CurrencyFormatter(requestedLocaleIDName:String)
建構新 CurrencyFormatter 物件,以根據特定地區設定的慣例,格式化代表貨幣金額的數字。 | CurrencyFormatter | ||
建立一個字串,代表根據此 CurrencyFormatter 物件的目前屬性來格式化的貨幣金額,目前屬性包括地區設定、貨幣符號與貨幣 ISO 代碼。 | CurrencyFormatter | ||
判斷格式化貨幣金額時,可否使用目前指定的貨幣符號。 | CurrencyFormatter | ||
[靜態]
列出此類別支援的所有地區設定 ID 名稱。 | CurrencyFormatter | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
將字串剖析為貨幣金額與貨幣符號。 | CurrencyFormatter | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
設定 CurrencyFormatter 物件的 currencyISOCode 和 currencySymbol 屬性。 | CurrencyFormatter | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object |
actualLocaleIDName | 屬性 |
actualLocaleIDName:String
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
此 CurrencyFormatter 物件所使用的實際地區設定 ID 名稱。
根據作業系統與 requestedLocaleIDName
參數傳送到 CurrencyFormatter()
建構函式的值,此值有三種可能情況。
- 若要求的地區設定不是
LocaleID.DEFAULT
,而且作業系統支援要求的地區設定,則傳回的名稱會與requestedLocaleIDName
屬性相同。 - 若使用
LocaleID.DEFAULT
當作建構函式requestedLocaleIDName
參數的值,則會使用使用者作業系統指定的目前地區設定名稱。LocaleID.DEFAULT
值會將使用者的自訂設定保留於作業系統中。即使兩個地區設定 ID 名稱是相同的,傳送明確的值作為requestedLocaleIDName
參數所得的結果,也未必與使用LocaleID.DEFAULT
相同。使用者可能在自己的電腦上已有自訂的地區設定,若要求明確的地區設定 ID 名稱而不是使用LocaleID.DEFAULT
的話,您的應用程式不會擷取這些自訂設定。 - 若系統不支援建構函式所指定的
requestedLocaleIDName
,則會提供後援地區設定 ID 名稱。
實作
public function get actualLocaleIDName():String
相關 API 元素
currencyISOCode | 屬性 |
currencyISOCode:String
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
所用的實際地區設定之三個字母的 ISO 4217 貨幣代碼。
若在 withCurrencySymbol
參數設為 false
時,使用 format()
方法格式化貨幣金額,將使用此代碼來判斷貨幣符號或字串。
建構函式會根據所使用的實際地區設定,初始化此屬性。若使用後援地區設定,此屬性會反映後援地區設定的偏好、預設貨幣代碼。
預設值為 dependent on the actual locale and operating system。
實作
public function get currencyISOCode():String
相關 API 元素
currencySymbol | 屬性 |
currencySymbol:String
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
所用實際地區設定的貨幣符號或字串。
若在 withCurrencySymbol
參數設為 true
時,使用 format()
方法格式化貨幣金額,將使用此屬性做為貨幣符號。
建構函式會根據所使用的實際地區設定,初始化此屬性。若使用後援地區設定,此屬性會反映後援地區設定的偏好、預設貨幣符號。
預設值為 dependent on the actual locale and operating system。
實作
public function get currencySymbol():String
相關 API 元素
decimalSeparator | 屬性 |
decimalSeparator:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
用來格式化或解析含有小數部分的貨幣金額之小數分隔字元。
此屬性的初始設定,會根據建構格式化程式物件時選取的地區設定而定。
若將某值指派給此屬性,而且沒有錯誤或警告,則 lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
預設值為 dependent on the actual locale and operating system。
實作
public function get decimalSeparator():String
public function set decimalSeparator(value:String):void
擲回值
TypeError — 若此屬性被指派 null 值。
|
相關 API 元素
digitsType | 屬性 |
digitsType:uint
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
定義格式化貨幣金額時所用的位數字元集。
不同的語言與區域使用不同的字元集來表示數字 0 到 9。此屬性會定義要使用的位數組。
此屬性的值代表十進位位數組中,數字零的 Unicode 值。此屬性的有效值定義於 NationalDigitsType 類別中。
若將某值指派給此屬性,而且沒有錯誤或警告,則 lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
預設值為 dependent on the actual locale and operating system。
實作
public function get digitsType():uint
public function set digitsType(value:uint):void
擲回值
TypeError — 若此屬性被指派 null 值。
|
相關 API 元素
fractionalDigits | 屬性 |
fractionalDigits:int
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
小數分隔符號後可出現的最大位數。
數字會根據此屬性指定的位數,進行四捨五入。四捨五入配置會隨使用者的作業系統而異。
若 trailingZeros
屬性設為 true
,數字的小數部份 (小數點後的部分) 會在結尾填補零至此 fractionalDigits
屬性值指定的長度。
若將某值指派給此屬性,而且沒有錯誤或警告,則 lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
預設值為 0。
實作
public function get fractionalDigits():int
public function set fractionalDigits(value:int):void
相關 API 元素
groupingPattern | 屬性 |
groupingPattern:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
說明已格式化貨幣金額字串中,分組分隔符號的位置。
若 useGrouping
屬性設為 true,會使用 groupingPattern
屬性來定義分組分隔符號的位置與樣式。
分組樣式定義為包含數字的字串,這些數字以分號隔開,而且可選擇性以星號結尾。例如:"3;2;*"
。此字串中的各個數字都代表分組中的位數。分組分隔符號會置於每一組位數前。字串結尾的星號表示要重複使用此位數組別,對字串的其餘部分進行格式化。若沒有星號,表示格式化字串的其餘部分不會有其他組別或分隔符號。
字串中第一個數字代表小數分隔符號向左算起的第一組該有幾位數。後續數字定義向左算起各後續組別中的位數。因此「3;2;*」這個字串表示,第一個分組分隔符號放第一組 3 位數後,其他部分以 2 位數分組。例如:98,76,54,321
下表顯示以不同分組樣式對貨幣金額 123456789.12 進行格式化的結果。分組分隔符號為逗號,小數分隔符號為句號,錢字號 ($) 為貨幣符號。
分組樣式 | 範例格式 |
3;* | $123,456,789.12 |
3;2;* | $12,34,56,789.12 |
3 | $123456,789.12 |
可定義的分組大小數目有限。在某些作業系統上,分組樣式只能包含兩個數字加上一個星號。其他作業系統可支援最多四個數字和一個星號。對於沒有星號的樣式,有些作業系統只支援一個數字,有些作業系統支援最多三個數字。若超出分組樣式元素上限,會忽略其他元素,並設定 lastOperationStatus
屬性,如下所述。
若將某值指派給此屬性,而且沒有錯誤或警告,則 lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
實作
public function get groupingPattern():String
public function set groupingPattern(value:String):void
擲回值
TypeError — 若此屬性被指派 null 值。
|
相關 API 元素
groupingSeparator | 屬性 |
groupingSeparator:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
用於分組分隔符號的字元或字串。
在 useGrouping
屬性設為 true
時,會在格式化貨幣金額時使用此屬性的值當做分組分隔符號。此屬性的初始設定,會根據建構格式化程式物件時選取的地區設定而定。
若將某值指派給此屬性,而且沒有錯誤或警告,則 lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
預設值為 dependent on the actual locale and operating system。
實作
public function get groupingSeparator():String
public function set groupingSeparator(value:String):void
擲回值
TypeError — 若此屬性被指派 null 值。
|
相關 API 元素
lastOperationStatus | 屬性 |
leadingZero | 屬性 |
leadingZero:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
指定若小數分隔符號左邊沒有整數位數,是否要在格式化的貨幣金額中補上開頭的零。
若此屬性設為 true
,會在格式化 -1.0 至 1.0 之間的數值時,在小數分隔符號左邊補上零。若此屬性設為 false
,則不會包含開頭的零。
例如,若貨幣金額為 0.321,且此屬性設為 true
,則格式化後的字串會包含開頭的零。若此屬性設為 false
,則不會包含開頭的零。在這種情況下,字串只會包含小數分隔符號,後面接著小數位數,如 $.321
。
下表顯示根據此屬性與相關 fractionalDigits
和 trailingZeros
屬性的值,對貨幣金額進行格式化的結果。
trailingZeros | leadingZero | fractionalDigits | 0.12 | 0 |
true | true | 3 | $0.120 | $0.000 |
false | true | 3 | $0.12 | $0 |
true | false | 3 | $.120 | $.000 |
false | false | 3 | $.12 | $0 |
若將某值指派給此屬性,而且沒有錯誤或警告,則 lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
預設值為 dependent on the actual locale and operating system。
實作
public function get leadingZero():Boolean
public function set leadingZero(value:Boolean):void
擲回值
TypeError — 若此屬性被指派 null 值。
|
相關 API 元素
negativeCurrencyFormat | 屬性 |
negativeCurrencyFormat:uint
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
表示負值貨幣金額格式化樣式的數值。此樣式定義貨幣金額中,貨幣符號與負號或括弧相對於數字部分的位置。
此屬性的值必須為下表定義的常數之一。
下表摘要負值貨幣金額的可能格式化樣式。若使用 format()
方法對貨幣金額進行格式化:
- 根據傳至
format()
方法的withCurrencySymbol
參數值,會使用currencyISOCode
或currencySymbol
屬性的值取代「¤」符號; - 以
negativeNumberSymbol
屬性的值取代「-」字元; - 以傳至
format()
方法的貨幣金額值取代「n」字元。
負值貨幣格式類型 | 格式化樣式 |
0 | (¤n) |
1 | -¤n |
2 | ¤-n |
3 | ¤n- |
4 | (n¤) |
5 | -n¤ |
6 | n-¤ |
7 | n¤- |
8 | -n ¤ |
9 | -¤ n |
10 | n ¤- |
11 | ¤ n- |
12 | ¤ -n |
13 | n- ¤ |
14 | (¤ n) |
15 | (n ¤) |
若將某值指派給此屬性,而且沒有錯誤或警告,則 lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
預設值為 dependent on the actual locale and operating system。
實作
public function get negativeCurrencyFormat():uint
public function set negativeCurrencyFormat(value:uint):void
擲回值
ArgumentError — 若指派的值不介於 0 到 15 之間。
|
相關 API 元素
negativeSymbol | 屬性 |
negativeSymbol:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
格式化負值金額時所使用的負號。
對小於零的貨幣金額進行格式化時,會使用此符號搭配負值貨幣格式。並不會用於未包含負號的負值貨幣格式 (例如,包含於括弧中的負值貨幣金額)。
若將某值指派給此屬性,而且沒有錯誤或警告,則 lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
預設值為 dependent on the actual locale and operating system。
實作
public function get negativeSymbol():String
public function set negativeSymbol(value:String):void
擲回值
TypeError — 若此屬性被指派 null 值。
|
相關 API 元素
positiveCurrencyFormat | 屬性 |
positiveCurrencyFormat:uint
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
表示正值貨幣金額格式化樣式的數值。此格式定義貨幣金額中,貨幣符號相對於數字部分的位置。
此屬性的值必須為下表定義的常數之一。
下表摘要正值貨幣金額的可能格式化樣式。若使用 format()
方法對貨幣金額進行格式化:
- 根據傳至
format()
方法的withCurrencySymbol
參數值,會使用currencyISOCode
或currencySymbol
屬性的值取代「¤」符號; - 以傳至
format()
方法的貨幣金額值取代「n」字元。
正值貨幣格式類型 | 格式化樣式 |
0 | ¤n |
1 | n¤ |
2 | ¤ n |
3 | n ¤ |
若將某值指派給此屬性,而且沒有錯誤或警告,則 lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
預設值為 dependent on the actual locale and operating system。
實作
public function get positiveCurrencyFormat():uint
public function set positiveCurrencyFormat(value:uint):void
擲回值
ArgumentError — 若指派的值不介於 0 到 3 之間。
|
相關 API 元素
requestedLocaleIDName | 屬性 |
requestedLocaleIDName:String
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
傳送到此 CurrencyFormatter 物件建構函式的所要求地區設定 ID 名稱。
若使用 LocaleID.DEFAULT
值,則傳回的名稱會是 "i-default"。若採用後援地區設定,則所用的實際地區設定可能與要求的地區設定不同。您可以使用 actualLocaleIDName
屬性擷取實際地區設定名稱。
實作
public function get requestedLocaleIDName():String
相關 API 元素
trailingZeros | 屬性 |
trailingZeros:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
指定格式化後的貨幣金額是否包含結尾零。
若此屬性設為 true
,格式化後的數字小數部分會包含結尾零,補滿至 fractionalDigits
屬性所指定的位數。若此屬性設為 false
,則不會顯示結尾零。
例如,若貨幣金額為 123.4,且此屬性設為 true,而 fractionalDigits
屬性設為 3,則格式化後的字串會顯示結尾零,如 $123.400
。若此屬性為 false
,則字串中不會有結尾零,而只會顯示小數分隔符號,接著非零小數位數 (如 123.4
)。
下表顯示根據此屬性與相關 fractionalDigits
和 leadingZero
屬性的值,對貨幣金額進行格式化的結果。
trailingZeros | leadingZero | fractionalDigits | 0.12 | 0 |
true | true | 3 | $0.120 | $0.000 |
false | true | 3 | $0.12 | $0 |
true | false | 3 | $.120 | $.000 |
false | false | 3 | $.12 | $0 |
若將某值指派給此屬性,而且沒有錯誤或警告,則 lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
預設值為 dependent on the actual locale and operating system。
實作
public function get trailingZeros():Boolean
public function set trailingZeros(value:Boolean):void
擲回值
TypeError — 若此屬性被指派 null 值。
|
相關 API 元素
useGrouping | 屬性 |
useGrouping:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
格式化貨幣金額時,啟用分組分隔符號。
若 useGrouping
屬性設為 true
,會將位數分組,並以分組分隔字元隔開。例如:$123,456,789
若 useGrouping
屬性設為 false
,位數之間就不會有分組或隔開的動作。例如:$123456789
groupingSeparator
屬性會定義做為分組分隔符號的符號。groupingPattern
屬性會定義分組分隔符號之間的位數。
若將某值指派給此屬性,而且沒有錯誤或警告,則 lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
實作
public function get useGrouping():Boolean
public function set useGrouping(value:Boolean):void
相關 API 元素
CurrencyFormatter | () | 建構函式 |
public function CurrencyFormatter(requestedLocaleIDName:String)
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
建構新 CurrencyFormatter 物件,以根據特定地區設定的慣例,格式化代表貨幣金額的數字。
此建構函式會判斷目前的作業系統是否支援要求的地區設定 ID 名稱。若不支援,則會改用後援地區設定。若使用後援地區設定,則 lastOperationStatus
屬性會指示後援類型,而 actualLocaleIDName
屬性會包含後援地區設定 ID 的名稱。
currencySymbol
和 currencyISOCode
等特定屬性,會根據地區設定自動設定。
注意:若使用後援地區設定,則貨幣屬性會設定成預設值,因此 currencySymbol
或 currencyISOCode
屬性可能會得到未預期的值。 建議您先檢查 currencySymbol
和 currencyISOCode
屬性值,再對貨幣金額進行格式化。
若要根據使用者目前作業系統的偏好設定進行格式化,請將 requestedLocaleIDName
參數中的 LocaleID.DEFAULT
值傳送到建構函式。
當建構函式被呼叫並成功完成時,lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
若要求的地區設定 ID 名稱無法使用,則 lastOperationStatus
會被設為下列之一:
LastOperationStatus.USING_FALLBACK_WARNING
LastOperationStatus.USING_DEFAULT_WARNING
否則,lastOperationStatus
屬性會被設為 LastOperationStatus 類別中定義的常數之一。
如需有關上方列出的警告以及 lastOperationStatus
屬性的其他可能值的詳細資訊,請參閱 LastOperationStatus
類別的說明。
requestedLocaleIDName:String — 判斷日期或時間格式時要使用的偏好地區設定 ID 名稱。
|
擲回值
TypeError — 若 requestedLocaleIDName 參數為 null 。
|
相關 API 元素
format | () | 方法 |
public function format(value:Number, withCurrencySymbol:Boolean = false):String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
建立一個字串,代表根據此 CurrencyFormatter 物件的目前屬性來格式化的貨幣金額,目前屬性包括地區設定、貨幣符號與貨幣 ISO 代碼。
依照預設,此方法使用 currencyISOCode
屬性,判斷格式化時要使用的貨幣符號與其他設定。
許多國家與地區對於不同貨幣使用相同的貨幣符號。例如,美國、澳洲、紐西蘭、加拿大和墨西哥等地的貨幣都使用相同的錢字號 ($)。若要格式化的貨幣與使用者當地貨幣不同,建議使用 ISO 代碼作為貨幣字串。您可以使用 formattingWithCurrencySymbolIsSafe()
方法,測試要格式化的貨幣 ISO 代碼是否符合格式化程式的 currencyISOCode
屬性。
此方法可格式化極大和極小的純數。但有效位數受到 Number 資料類型提供之精確度的限制。
參數
value:Number — 要格式化為貨幣字串的數值。
| |
withCurrencySymbol:Boolean (default = false ) — 若設為 false,currencyISOCode 屬性會決定輸出字串中要使用的貨幣字串或符號。若設為 true,輸出字串中會使用 currencySymbol 屬性的目前值。
|
String — 包含已格式化貨幣值的字串。
|
相關 API 元素
currencyISOCode
formattingWithCurrencySymbolIsSafe()
lastOperationStatus
LastOperationStatus
範例 ( 如何使用本範例 )
withCurrencySymbol
參數設為 true,會使用 currencySymbol
屬性來格式化貨幣金額。
var cf:CurrencyFormatter = new CurrencyFormatter("fr-CA"); trace(cf.actualLocaleIDName); // "fr-CA" trace(cf.currencyISOCode); // "CAD" trace(cf.currencySymbol); // "$" trace(cf.format(1254.56)); // "1 254,56 CAD" trace(cf.format(1254.56, true)); // "1 254,56 $"
第二個範例顯示使用預設的使用者地區設定,將貨幣金額格式化為加拿大幣的方法。formattingWithCurrencySymbolIsSafe()
方法可用來測試使用者的預設貨幣是否為加拿大幣,若是的話,會將 withCurrencySymbol
參數設為 true 以使用格式化方法。否則會將貨幣設為加拿大幣,加上更具描述性的貨幣符號。範例顯示若預設地區設定為「法文 (加拿大)」或「英文 (美國)」時,對貨幣進行格式化的方式。
var cf:CurrencyFormatter = new CurrencyFormatter(LocaleID.DEFAULT); if (cf.formattingWithCurrencySymbolIsSafe("CAD")) { trace(cf.actualLocaleIDName); // "fr-CA French (Canada)" trace(cf.format(1254.56, false)); // "1 254,56 $" } else { trace(cf.actualLocaleIDName); // "en-US English (USA)" cf.setCurrency("CAD", "C$") trace(cf.format(1254.56, true)); // "C$ 1,254.56" }
formattingWithCurrencySymbolIsSafe | () | 方法 |
public function formattingWithCurrencySymbolIsSafe(requestedISOCode:String):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
判斷格式化貨幣金額時,可否使用目前指定的貨幣符號。
許多地區和國家使用相同的貨幣符號。若貨幣符號模稜兩可,或貨幣符號或 ISO 代碼由於使用後援地區設定而與預期有異,可使用此方法予以避免。
此方法的常見使用案例,是用來判斷是否顯示當地貨幣符號 (若金額將格式化為使用者預設貨幣),或更特定的 ISO 代碼字串 (若金額將格式化為使用者預設值以外的其他貨幣)。
此方法會比較 requestedISOCode
參數與 currencyISOCode
屬性,若字串相同,則傳回 true
,若不同則傳回 false
。若字串相同,則使用 format()
方法並將 withCurrencySymbol
參數設為 true
,會得到格式化的貨幣值字串 (含該地區設定的專用貨幣符號)。若此方法傳回 false,則使用 format()
方法並將 withCurrencySymbol
參數設為 true,會導致所用的貨幣符號模稜兩可或錯誤。
當此方法被呼叫並成功完成時,lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
參數
requestedISOCode:String — 三個字母的 ISO 4217 貨幣代碼 (例如,美金為 USD,歐元為 EUR)。必須包含從 A 到 Z 的三個大寫字母。
|
Boolean — 若 currencyISOCode 屬性符合 requestedISOCode 參數,則為 true ;反之則為 false 。
|
擲回值
TypeError — 若 requestedISOCode 參數為 null。
|
相關 API 元素
getAvailableLocaleIDNames | () | 方法 |
public static function getAvailableLocaleIDNames():Vector.<String>
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
列出此類別支援的所有地區設定 ID 名稱。
若目前的作業系統不支援此類別,此方法會傳回 null 值。
當此方法被呼叫並成功完成時,lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
Vector.<String> — 包含此類別支援的所有地區設定 ID 名稱之字串向量。
|
parse | () | 方法 |
public function parse(inputString:String):CurrencyParseResult
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
將字串剖析為貨幣金額與貨幣符號。
解析演算法使用 decimalSeparator
屬性的值,判斷數字的整數與小數部分。它會使用 negativeCurrencyFormat
和 positiveCurrencyFormat
屬性的值,判斷貨幣符號或字串相對於貨幣金額的位置。若金額為負值,則 negativeCurrencyFormat
屬性的值會判斷負號的位置以及是否使用括弧。
若輸入字串中的貨幣符號、負號與數字順序與 negativeCurrencyFormat
和 positiveCurrencyFormat
屬性所分辨出的樣式不符,則:
- 所傳回 CurrencyParseResult 物件的
value
屬性會設為NaN
。 - 所傳回 CurrencyParseResult 物件的
currencyString
屬性會設為null
。 lastOperationStatus
屬性會設為表示解析失敗的值。
輸入字串可包含空白字元,這些字元在解析時會被忽略。
即使無貨幣符號,也能成功解析。對於與貨幣符號對應的字串部分,不會進行驗證。若無貨幣符號或字串,所傳回 CurrencyParseResult 物件的 currencyString
屬性會被設為空字串。
當此方法被呼叫並成功完成時,lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則,lastOperationStatus
屬性會被設為 LastOperationStatus
類別中定義的常數之一。
參數
inputString:String — 要剖析的輸入字串。
|
CurrencyParseResult — 包含數值與貨幣符號或字串的 CurrencyParseResult 物件。
|
擲回值
TypeError — 若 inputString 參數為 null。
|
相關 API 元素
setCurrency | () | 方法 |
public function setCurrency(currencyISOCode:String, currencySymbol:String):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
設定 CurrencyFormatter 物件的 currencyISOCode
和 currencySymbol
屬性。
當此方法被呼叫並成功完成時,lastOperationStatus
屬性會被設為:
LastOperationStatus.NO_ERROR
否則不會修改 currencyISOCode
和 currencySymbol
屬性的值,而且 lastOperationStatus
屬性會被設為 LastOperationStatus
類別中所定義的常數之一。
參數
currencyISOCode:String — 三個字母的 ISO 4217 貨幣代碼 (例如,美金為 USD,歐元為 EUR)。必須包含從 A 到 Z 的三個大寫字母。
| |
currencySymbol:String — 格式化貨幣值時所使用的貨幣符號或字串。這可以是空字串。
|
擲回值
TypeError — 若 currencyISOCode 或 currencySymbol 參數為 null。
|
相關 API 元素
此範例會使用以下的地區設定:
- 貨幣格式的預設作業系統 (
LocaleID.DEFAULT
) - 日文 (日本)
- 英文 (美國)
- 法文 (法國)
此範例會為清單中的每一個地區設定執行以下動作:
- 建立 CurrencyFormatter 物件
- 請使用
formattingWithCurrencySymbolIsSafe()
方法,檢查地區設定的預設貨幣是否為歐元 ("EUR"),如果是的話,則使用貨幣符號來格式化此字串。否則,會使用 ISO 代碼來格式化字串。
package { import flash.display.Sprite; import flash.globalization.CurrencyFormatter; import flash.globalization.LocaleID; public class CurrencyFormatterExample1 extends Sprite { public function CurrencyFormatterExample1():void { var cf:CurrencyFormatter; var amountWithSymbol:String; var amountWithISOCode:String var localeNames:Array = [LocaleID.DEFAULT, "ja-JP", "en-US", "fr-FR"]; for each (var localeName:String in localeNames) { cf = new CurrencyFormatter(localeName); trace('\n' + "LocaleID requested=" + cf.requestedLocaleIDName + "; actual=" + cf.actualLocaleIDName); trace("Last Operation Status: " + cf.lastOperationStatus ); trace("Currency ISO Code: " + cf.currencyISOCode); if (cf.formattingWithCurrencySymbolIsSafe("EUR")) { amountWithSymbol = cf.format(123456789.19, true); trace("Format using Symbol: "+ amountWithSymbol); } else { amountWithISOCode = cf.format(123456789.19); trace("Format using ISO Code: " + amountWithISOCode); } } } } }
這個範例會執行以下步驟:
- 為英文 (美國) 地區設定建立一個 CurrencyFormatter 物件。
- 使用
parse()
方法來剖析輸入字串。 - 從產生的 CurrencyParseResult 物件中顯示金額與貨幣字串值。
package { import flash.display.Sprite; import flash.globalization.CurrencyFormatter; import flash.globalization.CurrencyParseResult; import flash.globalization.LastOperationStatus; import flash.globalization.LocaleID; public class CurrencyFormatterParseExample extends Sprite { public function CurrencyFormatterParseExample() { var cf:CurrencyFormatter = new CurrencyFormatter( "en_US" ); trace("LocaleID requested=" + cf.requestedLocaleIDName + "; actual=" + cf.actualLocaleIDName); trace("Last Operation Status: " + cf.lastOperationStatus ); var inputString:String = "Dollar 123,567,89,0.254"; var result:CurrencyParseResult = cf.parse(inputString); if (cf.lastOperationStatus == LastOperationStatus.NO_ERROR ) { trace("Amount value: " + result.value); trace("Currency string: " + result.currencyString); } } } }
Tue Jun 12 2018, 03:47 PM Z