currency ratesymbol 和 currency ratecode 有什么区别

Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.
In C# is it possible to get a currency symbol, like '?', from the 3 character currency code, in this case 'GBP'?
Is this possible either in SQL Server or in C#?
9,5523092159
While a bit brute-force and not particularly elegant, you could do it like this:
public bool TryGetCurrencySymbol(string ISOCurrencySymbol, out string symbol)
symbol = CultureInfo
.GetCultures(CultureTypes.AllCultures)
.Where(c =& !c.IsNeutralCulture)
.Select(culture =& {
return new RegionInfo(culture.LCID);
.Where(ri =& ri!=null && ri.ISOCurrencySymbol == ISOCurrencySymbol)
.Select(ri =& ri.CurrencySymbol)
.FirstOrDefault();
return symbol !=
and use it as follows:
string currS
if(TryGetCurrencySymbol("GBP",out currSymbol))
Console.WriteLine("symbol is {0}", currSymbol);
If you anticipate hammering this method, perhaps it's better to build a cache up front:
public static class CurrencyTools
private static IDictionary&string,string&
static CurrencyTools()
map = CultureInfo
.GetCultures(CultureTypes.AllCultures)
.Where(c =& !c.IsNeutralCulture)
.Select(culture =& {
return new RegionInfo(culture.LCID);
.Where(ri =& ri!=null)
.GroupBy(ri =& ri.ISOCurrencySymbol)
.ToDictionary(x =& x.Key, x =& x.First().CurrencySymbol);
public static bool TryGetCurrencySymbol(
string ISOCurrencySymbol,
out string symbol)
return map.TryGetValue(ISOCurrencySymbol,out symbol);
At the time of writing, on my machine etc. etc. the map contains the following mappings:
KGS сом
MKD ден.
TJS т.р.
VEF Bs. F.
57.1k1377177
.NET has CultureInfo.NumberFormat.CurrencySymbol
CultureInfo us = new CultureInfo("en-US");
CultureInfo gb = new CultureInfo("en-GB");
CultureInfo fr = new CultureInfo("fr-FR");
Console.Out.WriteLine(us.NumberFormat.CurrencySymbol); // $
Console.Out.WriteLine(gb.NumberFormat.CurrencySymbol); // ?
Console.Out.WriteLine(fr.NumberFormat.CurrencySymbol); // EUR
But this requires the culture name, not "GBP". As far as I know its not possible directly from "GBP", etc.
The same information is also available via RegionInfo, along with the currency code:
RegionInfo us = new RegionInfo("en-US");
RegionInfo gb = new RegionInfo("en-GB");
RegionInfo fr = new RegionInfo("fr-FR");
Console.Out.WriteLine(us.CurrencySymbol); // $
Console.Out.WriteLine(gb.CurrencySymbol); // ?
Console.Out.WriteLine(fr.CurrencySymbol); // EUR
Console.Out.WriteLine(us.ISOCurrencySymbol); // USD
Console.Out.WriteLine(gb.ISOCurrencySymbol); // GBP
Console.Out.WriteLine(fr.ISOCurrencySymbol); // EUR
I suppose one could conceivably use that to construct a map from ISO code to symbol.
The list of culture names is avaliable .
EDIT: Well this seems to work:
public static class CurrencyCodeMapper
private static readonly Dictionary&string, string& SymbolsByC
public static string GetSymbol(string code) { return SymbolsByCode[code]; }
static CurrencyCodeMapper()
SymbolsByCode = new Dictionary&string, string&();
var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
.Select(x =& new RegionInfo(x.LCID));
foreach (var region in regions)
if (!SymbolsByCode.ContainsKey(region.ISOCurrencySymbol))
SymbolsByCode.Add(region.ISOCurrencySymbol, region.CurrencySymbol);
CurrencyCodeMapper.GetSymbol("USD") // $
CurrencyCodeMapper.GetSymbol("GBP") // ?
CurrencyCodeMapper.GetSymbol("EUR") // EUR
Note, of course, that this does not produce a comprehensive list. In particular, it does not include old Eurozone currencies that have been superseded by the Euro. I cannot see any way around this but to manually add such currencies if you need them, for example SymbolsByCode.Add("FRF", "?"); for French Francs.
6,88211441
The RegionInfo class has a , so it's doable in C#. You could perhaps use a C# stored procedure if you wanted to do it in Sql Server.
RegionInfo regionInfo = new RegionInfo("GB");
Console.WriteLine(regionInfo.CurrencySymbol); // ?
(You need to use the )
25.8k44769
Try this code. Enter 'USD' as CurrencyCode and all other.
public string getCurrencySymbol(string CurrencyCode)
string symbol = string.E
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
IList Result = new ArrayList();
foreach (CultureInfo ci in cultures)
RegionInfo ri = new RegionInfo(ci.LCID);
if (ri.ISOCurrencySymbol == CurrencyCode)
symbol = ri.CurrencyS
2,82541529
This will not work on Windows Phone applications as CultureInfo.GetCultures is not available on the platform (at least not yet). So here is a quick and dirty solution - made with the help of spender's answer containing all the culture codes and currencies at the date.
public static class CurrencyHelper
public static string GetCurrencySymbol(string code)
if (Currencies.ContainsKey(code))
return Currencies[code];
public static Dictionary&string, string& Currencies = new Dictionary&string, string&() {
{"AED", "?.?.?"},
{"AFN", "? "},
{"ALL", "Lek"},
{"AMD", "??."},
{"ARS", "$"},
{"AUD", "$"},
{"AZN", "man."},
{"BAM", "KM"},
{"BDT", "?"},
{"BGN", "лв."},
{"BHD", "?.?.? "},
{"BND", "$"},
{"BOB", "$b"},
{"BRL", "R$"},
{"BYR", "р."},
{"BZD", "BZ$"},
{"CAD", "$"},
{"CHF", "fr."},
{"CLP", "$"},
{"CNY", "?"},
{"COP", "$"},
{"CRC", "?"},
{"CSD", "Din."},
{"CZK", "K?"},
{"DKK", "kr."},
{"DOP", "RD$"},
{"DZD", "DZD"},
{"EEK", "kr"},
{"EGP", "?.?.? "},
{"ETB", "ETB"},
{"EUR", "EUR"},
{"GBP", "?"},
{"GEL", "Lari"},
{"GTQ", "Q"},
{"HKD", "HK$"},
{"HNL", "L."},
{"HRK", "kn"},
{"HUF", "Ft"},
{"IDR", "Rp"},
{"ILS", "?"},
{"INR", "??"},
{"IQD", "?.?.? "},
{"IRR", "???? "},
{"ISK", "kr."},
{"JMD", "J$"},
{"JOD", "?.?.? "},
{"JPY", "?"},
{"KES", "S"},
{"KGS", "сом"},
{"KHR", "?"},
{"KRW", "?"},
{"KWD", "?.?.? "},
{"KZT", "Т"},
{"LAK", "?"},
{"LBP", "?.?.? "},
{"LKR", "??."},
{"LTL", "Lt"},
{"LVL", "Ls"},
{"LYD", "?.?.? "},
{"MAD", "?.?.? "},
{"MKD", "ден."},
{"MNT", "?"},
{"MOP", "MOP"},
{"MVR", "?."},
{"MXN", "$"},
{"MYR", "RM"},
{"NIO", "N"},
{"NOK", "kr"},
{"NPR", "??"},
{"NZD", "$"},
{"OMR", "?.?.? "},
{"PAB", "B/."},
{"PEN", "S/."},
{"PHP", "PhP"},
{"PKR", "Rs"},
{"PLN", "z?"},
{"PYG", "Gs"},
{"QAR", "?.?.? "},
{"RON", "lei"},
{"RSD", "Din."},
{"RUB", "р."},
{"RWF", "RWF"},
{"SAR", "?.?.? "},
{"SEK", "kr"},
{"SGD", "$"},
{"SYP", "?.?.? "},
{"THB", "?"},
{"TJS", "т.р."},
{"TMT", "m."},
{"TND", "?.?.? "},
{"TRY", "TL"},
{"TTD", "TT$"},
{"TWD", "NT$"},
{"UAH", "?"},
{"USD", "$"},
{"UYU", "$U"},
{"UZS", "so'm"},
{"VEF", "Bs. F."},
{"VND", "?"},
{"XOF", "XOF"},
{"YER", "?.?.? "},
{"ZAR", "R"},
{"ZWL", "Z$"} };
Your Answer
Sign up or
Sign up using Google
Sign up using Facebook
Sign up using Stack Exchange
Post as a guest
Post as a guest
By posting your answer, you agree to the
Not the answer you're looking for?
Browse other questions tagged
Stack Overflow works best with JavaScript enabledAdobe&&Flex&&4.1&语言参考
CurrencyFormatter&
语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
CurrencyFormatter 类提供货币值的区分区域设置的格式设置和解析。
CurrencyFormatter 类使用操作系统提供的数据和功能,设计用于根据特定区域的约定和币种为币值设置格式。货币符号、负号、小数分隔符、分组分隔符、分组模式小数分隔符及其他元素的位置可以视区域设置而定。
如果操作系统支持请求的区域设置,则根据约定和请求的区域设置的默认值设置属性和货币类型。如果请求的区域设置不可用,则根据回退或默认系统区域设置来设置属性,可以使用 actualLocaleIDName
属性检索默认系统区域设置。
由于要使用用户的设置、要使用操作系统提供的格式设置模式,并在请求的区域设置不受支持时使用回退区域设置,因此,即便使用相同的区域设置 ID,对不同的用户显示的格式设置结果也可能不同。
公共属性&属性定义方&& : [只读]
此 CurrencyFormatter 对象使用的实际区域设置 ID 的名称。CurrencyFormatter& :
对类对象或给定对象实例的构造函数的引用。&& : [只读]
正在使用的实际区域设置的三个字母的 ISO 4217 币种代码。CurrencyFormatter&& : [只读]
正在使用的实际区域设置的货币符号或字符串。CurrencyFormatter&& :
为包含小数部分的货币金额设置格式或对其进行解析时使用的小数分隔符字符。CurrencyFormatter&& :
定义为货币金额设置格式时使用的数字字符集。CurrencyFormatter&& :
小数分隔符后可以显示的最大位数。CurrencyFormatter&& :
描述分组分隔符在设置了格式的货币金额字符串中的位置。CurrencyFormatter&& :
用于分组分隔符的字符或字符串。CurrencyFormatter&& : [只读]
此 CurrencyFormatter 对象执行的最近操作的状态。CurrencyFormatter&& :
指定当小数分隔符左侧没有整数位时,设置了格式的货币金额中是否包括前导零。CurrencyFormatter&& :
指示负值货币金额的格式设置模式的数值。CurrencyFormatter&& :
设置负值货币金额的格式时使用的负号。CurrencyFormatter&& :
指示正值货币金额的格式设置模式的数值。CurrencyFormatter& : [静态]
对类或函数对象的原型对象的引用。&& : [只读]
传递到此 CurrencyFormatter 对象的构造函数的请求的区域设置 ID 名称。CurrencyFormatter&& :
指定设置了格式的货币金额中是否包括尾随零。CurrencyFormatter&& :
当设置货币金额格式时,启用分组分隔符。CurrencyFormatter公共方法 &方法定义方&&(requestedLocaleIDName:)
构造新的 CurrencyFormatter 对象以根据给定区域设置的约定为表示货币金额的数字设置格式。CurrencyFormatter&&(value:, withCurrencySymbol: = false):
创建字符串,该字符串表示根据此 CurrencyFormatter 对象的当前属性(包括区域设置、货币符号和货币 ISO 代码)设置格式的货币金额。CurrencyFormatter&&(requestedISOCode:):
确定是否可使用当前指定的货币符号为货币金额设置格式。CurrencyFormatter&&():.&&[静态]
列出此类支持的所有区域设置 ID 名称。CurrencyFormatter&(name:):
指示对象是否已经定义了指定的属性。&(theClass:):
指示 Object 类的实例是否在指定为参数的对象的原型链中。&&(inputString:):
将字符串解析为货币金额和货币符号。CurrencyFormatter&(name:):
指示指定的属性是否存在、是否可枚举。&&(currencyISOCode:, currencySymbol:):
设置 CurrencyFormatter 对象的 currencyISOCode 和 currencySymbol 属性。CurrencyFormatter&(name:, isEnum: = true):
设置循环操作动态属性的可用性。&():
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。&():
返回指定对象的字符串表示形式。&():
返回指定对象的原始值。actualLocaleIDName:&&[只读] 语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
此 CurrencyFormatter 对象使用的实际区域设置 ID 的名称。
根据操作系统和传递给 CurrencyFormatter() 构造函数的 requestedLocaleIDName 参数的值,该名称有三种可能的值。
如果请求的区域设置不是 LocaleID.DEFAULT 且操作系统支持该请求的区域设置,则返回的名称与 requestedLocaleIDName 属性相同。
如果将 LocaleID.DEFAULT 用作构造函数的 requestedLocaleIDName 参数的值,则使用由用户操作系统指定的当前区域设置的名称。LocaleID.DEFAULT 值保留用户在操作系统中的自定义设置。显式值作为 requestedLocaleIDName 参数传递与使用 LocaleID.DEFAULT 所产生的结果不一定相同,即使两个区域设置 ID 名称相同,也是如此。用户可能已在他们的计算机上对区域设置进行了自定义,通过请求显式区域设置 ID 名称(而不是使用 LocaleID.DEFAULT),您的应用程序将不会检索这些自定义设置。
如果系统不支持在构造函数中指定的 requestedLocaleIDName,则会提供回退区域设置 ID 名称。
实现 &&&&public function get actualLocaleIDName():另请参见currencyISOCode:&&[只读] 语言版本:&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():另请参见currencySymbol:&&[只读] 语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
正在使用的实际区域设置的货币符号或字符串。
使用 withCurrencySymbol 参数设置为 true 的 format() 方法设置货币金额格式时,此属性用作货币符号。
此属性由构造函数基于所使用的实际区域设置进行初始化。当使用回退区域设置时,此属性反映回退区域设置的首选货币符号、默认货币符号。
默认值为 dependent on the actual locale and operating system。 实现 &&&&public function get currencySymbol():另请参见decimalSeparator:语言版本:&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():&&&&public function set decimalSeparator(value:): 引发
& 如果为此属性分配 null 值。
另请参见digitsType:语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
定义为货币金额设置格式时使用的数字字符集。
不同语言和区域使用不同的字符集表示数字 0 到 9。此属性定义要使用的数字集。
此属性值表示十进制数字集中数字 0 的 Unicode 值。在 NationalDigitsType 类中定义此属性的有效值。
为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:
LastOperationStatus.NO_ERROR
否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。
默认值为 dependent on the actual locale and operating system。 实现 &&&&public function get digitsType():&&&&public function set digitsType(value:): 引发
& 如果为此属性分配 null 值。
另请参见fractionalDigits:语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
小数分隔符后可以显示的最大位数。
数字舍入为由此属性指定的数字位数。舍入方案根据用户的操作系统不同而有所不同。
当 trailingZeros 属性设置为 true 时,用尾随零来填充数字的小数部分(小数点之后),直到数字长度与此 fractionalDigits 属性的值相匹配。
为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:
LastOperationStatus.NO_ERROR
否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。
默认值为 0。 实现 &&&&public function get fractionalDigits():&&&&public function set fractionalDigits(value:):另请参见groupingPattern:语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
描述分组分隔符在设置了格式的货币金额字符串中的位置。
将 useGrouping 属性设置为 true 时,groupingPattern 属性用于定义分组分隔符所用的位置和模式。
分组模式定义为包含由分号分隔并可能以星号结尾的数字的字符串。例如:“3;2;*”。字符串中的每个数字表示组中数字位数。分组分隔符置于每个数字组之前。字符串结尾的星号指示应在设置了格式的字符串的其余部分重复包含这一数字位数的组。如果没有星号,则在设置了格式的字符串的其余部分不会有其他组或分隔符。
字符串中的第一个数字对应于小数分隔符左边的第一组数字。随后的数字定义左边随后组中的数字位数。因此字符串“3;2;*”指示分组分隔符置于第一组 3 位数之后,后面跟 2 位数的组。例如:98,76,54,321
下表显示了使用多种分组模式为货币金额
设置格式的示例。分组分隔符为逗号、小数分隔符为句点,美元符号 ($) 是货币符号。
分组模式示例格式3;* $123,456,789.123;2;*$12,34,56,789.123$.12
仅可以定义有限的分组数字个数。在某些操作系统上,分组模式只能包含两个数字加一个星号。其他操作系统最多可以支持四个数字加一个星号。对于不含星号的模式,某些操作系统只支持一个数字,而其他操作系统最多支持三个数字。如果超过分组模式元素的最大数,则忽略其他元素,并按如下所述设置 lastOperationStatus 属性。
为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:
LastOperationStatus.NO_ERROR
否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。
实现 &&&&public function get groupingPattern():&&&&public function set groupingPattern(value:): 引发
& 如果为此属性分配 null 值。
另请参见groupingSeparator:语言版本:&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():&&&&public function set groupingSeparator(value:): 引发
& 如果为此属性分配 null 值。
另请参见lastOperationStatus:&&[只读] 语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
此 CurrencyFormatter 对象执行的最近操作的状态。只要调用构造函数或此类的方法或设置另一个属性,就会设置 lastOperationStatus 属性。有关可能的值,请参阅每种方法的说明。
实现 &&&&public function get lastOperationStatus():另请参见leadingZero:语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
指定当小数分隔符左侧没有整数位时,设置了格式的货币金额中是否包括前导零。
当此属性设置为 true 时,在设置 -1.0 到 1.0 之间的数值的格式时,小数分隔符左侧包括前导零。当此属性设置为 false 时,不包括前导零。
例如,如果货币金额是 0.321,并且此属性设置为 true,则设置了格式的字符串中包括前导零。如果将此属性设置为 false,则不包括前导零。在这种情况下,字符串中将仅包括小数分隔符及后跟的十进制数字,形如 $.321。
下表提供了几个示例,显示如何基于此属性以及相关的 fractionalDigits 和 trailingZeros 属性的值来设置货币金额的格式。
trailingZerosleadingZerofractionalDigits0.120truetrue3$0.120$0.000falsetrue3$0.12$0truefalse3$.120$.000falsefalse3$.12$0
为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:
LastOperationStatus.NO_ERROR
否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。
默认值为 dependent on the actual locale and operating system。 实现 &&&&public function get leadingZero():&&&&public function set leadingZero(value:): 引发
& 如果为此属性分配 null 值。
另请参见negativeCurrencyFormat:语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
指示负值货币金额的格式设置模式的数值。此模式定义货币符号和负号或圆括号相对于货币金额的数字部分的位置。
此属性的值必须是在下表中定义的常量之一。
下表总结了负值货币金额的可能的格式设置模式。在使用 format() 方法为货币金额设置格式时:
“¤”符号由 currencyISOCode 或 currencySymbol 属性的值替换,视传递到 format() 方法的 withCurrencySymbol 参数值而定;“-”字符由 negativeNumberSymbol 属性的值替换;“n”字符由传递到 format() 方法的货币金额值替换。
负值货币格式类型格式化图案0(¤n)1-¤n2¤-n3¤n-4(n¤)5-n¤6n-¤7n¤-8-n ¤9-¤ n10n ¤-11¤ n-12¤ -n13n- ¤14(¤ n)15(n ¤)
为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:
LastOperationStatus.NO_ERROR
否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。
默认值为 dependent on the actual locale and operating system。 实现 &&&&public function get negativeCurrencyFormat():&&&&public function set negativeCurrencyFormat(value:): 引发
& 如果指定的值不介于 0 到 15 之间。
另请参见negativeSymbol:语言版本:&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():&&&&public function set negativeSymbol(value:): 引发
& 如果为此属性分配 null 值。
另请参见positiveCurrencyFormat:语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
指示正值货币金额的格式设置模式的数值。此格式定义货币符号相对于货币金额数值部分的位置。
此属性的值必须是在下表中定义的常量之一。
下表总结了正值货币金额的可能的格式设置模式。在使用 format() 方法为货币金额设置格式时:
“¤”符号由 currencyISOCode 或 currencySymbol 属性的值替换,视传递到 format() 方法的 withCurrencySymbol 参数值而定;“n”字符由传递到 format() 方法的货币金额值替换。
正值货币格式类型格式化图案0¤n1n¤2¤ n3n ¤
为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:
LastOperationStatus.NO_ERROR
否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。
默认值为 dependent on the actual locale and operating system。 实现 &&&&public function get positiveCurrencyFormat():&&&&public function set positiveCurrencyFormat(value:): 引发
& 如果指定的值不介于 0 到 3 之间。
另请参见requestedLocaleIDName:&&[只读] 语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
传递到此 CurrencyFormatter 对象的构造函数的请求的区域设置 ID 名称。
如果使用了 LocaleID.DEFAULT 值,则返回的名称将是“i-default”。如果应用了回退区域设置,则实际使用的区域设置可能与请求的区域设置不同。可以使用 actualLocaleIDName 属性检索实际区域设置的名称。
实现 &&&&public function get requestedLocaleIDName():另请参见trailingZeros:语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
指定设置了格式的货币金额中是否包括尾随零。
当此属性设置为 true 时,设置了格式的数字的小数部分包括尾随零,并且位数限制为 fractionalDigits 属性指定的值。当此属性设置为 false 时,则不显示尾随零。
例如,如果货币金额是 123.4,并且此属性设置为 true,fractionalDigits 的属性设置为 3,则此设置了格式的字符串中将显示结尾零,形如 $123.400。如果此属性为 false,则不包括尾随零,并且该字符串仅显示小数分隔符以及后面的非零十进制数,形如 $123.4。
下表提供了几个示例,显示如何基于此属性以及相关的 fractionalDigits 和 leadingZero 属性的值来设置货币金额的格式。
trailingZerosleadingZerofractionalDigits0.120truetrue3$0.120$0.000falsetrue3$0.12$0truefalse3$.120$.000falsefalse3$.12$0
为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:
LastOperationStatus.NO_ERROR
否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。
默认值为 dependent on the actual locale and operating system。 实现 &&&&public function get trailingZeros():&&&&public function set trailingZeros(value:): 引发
& 如果为此属性分配 null 值。
另请参见useGrouping:语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
当设置货币金额格式时,启用分组分隔符。
当 useGrouping 属性设置为 true 时,数字进行分组并且使用分组分隔符字符进行分隔。例如:$123,456,789
当 useGrouping 属性设置为 false 时,数字不进行分组或分隔。例如:$
groupingSeparator 属性定义用作分组分隔符的符号。groupingPattern 属性定义分组分隔符之间的位数。
为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:
LastOperationStatus.NO_ERROR
否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。
实现 &&&&public function get useGrouping():&&&&public function set useGrouping(value:):另请参见public function CurrencyFormatter(requestedLocaleIDName:)语言版本:&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_WARNINGLastOperationStatus.USING_DEFAULT_WARNING
否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。
有关以上列出的警告和 lastOperationStatus 属性其他可能值的详细信息,请参阅 LastOperationStatus 类中的说明。
参数 requestedLocaleIDName: & 确定日期或时间格式时使用的首选区域设置 ID 名称。
& 如果 requestedLocaleIDName 参数为 null。
另请参见 public function format(value:, withCurrencySymbol: = false):语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
创建字符串,该字符串表示根据此 CurrencyFormatter 对象的当前属性(包括区域设置、货币符号和货币 ISO 代码)设置格式的货币金额。
默认情况下,此方法使用 currencyISOCode 属性确定设置格式时使用的货币符号和其他设置。
许多国家/地区和区域使用同一货币符号来表示不同币种。例如,美国、澳大利亚、新西兰、加拿大和墨西哥使用同一种美元符号 ($) 来本地货币值。当设置格式的货币与用户的本地货币不同时,最好使用 ISO 代码作为货币字符串。可使用 formattingWithCurrencySymbolIsSafe() 方法测试要设置格式的货币的 ISO 代码是否与格式程序的 currencyISOCode 属性匹配。
此方法可为极大数量级和极小数量级的数字设置格式。但有效位数不得超过 Number 数据类型提供的精度。
参数 value: & 将设置格式以成为货币字符串的数值。
&withCurrencySymbol: (default = false) & 设置为 false 时,currencyISOCode 属性确定在输出字符串中使用哪种货币字符串或符号。设置为 true 时,输出字符串中使用 currencySymbol 属性的当前值。
返回 & 一个字符串,其中包含设置了格式的货币值。
另请参见 示例 &(
在此示例中,请求的区域设置是 fr-CA 法语(加拿大)。此示例假设用户的操作系统支持此区域设置,因此不使用回退区域设置。对于 fr-CA,默认货币是 ISO 代码为 CAD 的加拿大元。因此,使用默认值设置货币格式时,使用 CAD 作为货币符号。当 withCurrencySymbol 参数设置为 true 时,使用 currencySymbol 属性为货币金额设置格式。
var cf:CurrencyFormatter = new CurrencyFormatter("fr-CA");
trace(cf.actualLocaleIDName);
// "fr-CA"
trace(cf.currencyISOCode);
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 $"
trace(cf.actualLocaleIDName);
// "en-US English (USA)"
cf.setCurrency("CAD", "C$")
trace(cf.format(1254.56, true));
// "C$ 1,254.56"
public function formattingWithCurrencySymbolIsSafe(requestedISOCode:):语言版本:&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: & 三个字母的 ISO 4217 币种代码(例如,美元为 USD,欧元为 EUR)。必须包含从 A 到 Z 的三个大写字母。
返回 & 如果 currencyISOCode 属性与 requestedISOCode 参数相匹配,为 true;否则为 false。
& 如果 requestedISOCode 参数为 null。
另请参见 public static function getAvailableLocaleIDNames():.&&语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
列出此类支持的所有区域设置 ID 名称。
如果当前操作系统不支持此类,此方法返回 null 值。
调用此方法并成功完成后,将 lastOperationStatus 属性设置为:
LastOperationStatus.NO_ERROR
否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。
返回.&& & 一个字符串矢量,其中包含此类支持的所有区域设置 ID 名称。
public function parse(inputString:):语言版本:&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: & 要解析的输入字符串。
返回 & 一个包含数值和货币符号或字符串的 CurrencyParseResult 对象。
& 如果 inputString 参数为 null。
另请参见 public function setCurrency(currencyISOCode:, currencySymbol:):语言版本:&ActionScript 3.0运行时版本:&Flash Player 10.1, AIR 2
设置 CurrencyFormatter 对象的 currencyISOCode 和 currencySymbol 属性。
调用此方法并成功完成后,将 lastOperationStatus 属性设置为:
LastOperationStatus.NO_ERROR
否则,currencyISOCode 和 currencySymbol 属性不会进行修改,并且 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。
参数 currencyISOCode: & 三个字母的 ISO 4217 币种代码(例如,美元为 USD,欧元为 EUR)。必须包含从 A 到 Z 的三个大写字母。
&currencySymbol: &
为货币值设置格式时要使用的货币符号或字符串。这可以是空字符串。
& 如果 currencyISOCode 或 currencySymbol 参数为 null。
另请参见 以下示例显示货币金额的格式设置如何随区域设置和币种的不同而变化。此示例中的结果会因操作系统和用户首选项不同而异。
此示例使用下列区域设置:
货币格式设置的默认操作系统区域设置 (LocaleID.DEFAULT)日语(日本)英语(美国)法语(法国)
此示例针对该列表中的每个区域设置执行下列操作:
创建 CurrencyFormatter 对象使用 formattingWithCurrencySymbolIsSafe() 方法检查区域设置的默认货币是否是欧元(“EUR”),如果是,则使用该货币符号设置字符串格式。如果不是,则使用 ISO 代码设置字符串格式。
import flash.display.S
import flash.globalization.CurrencyF
import flash.globalization.LocaleID;
public class CurrencyFormatterExample1 extends Sprite
public function CurrencyFormatterExample1():void
var cf:CurrencyF
var amountWithSymbol:S
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(, true);
trace("Format using Symbol: "+ amountWithSymbol);
amountWithISOCode = cf.format();
trace("Format using ISO Code: " + amountWithISOCode);
以下示例使用给定区域设置的规则解析货币金额。此示例中的结果可能因操作系统和用户首选项不同而异。
此示例执行下列步骤:
针对英语(美国)区域设置创建 CurrencyFormatter 对象。使用 parse() 方法解析输入字符串。显示生成的 CurrencyParseResult 对象的金额和货币字符串值。
import flash.display.S
import flash.globalization.CurrencyF
import flash.globalization.CurrencyParseR
import flash.globalization.LastOperationS
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);

我要回帖

更多关于 currency exchange 的文章

 

随机推荐