Como posso trabalhar com números e moedas formatadas non-US?

As funções LS são de localidade específica. Você pode usar a função setlocale () para alterar a localidade atual com que você estará trabalhando. Uma vez que esta localidade está definida, todas as funções específicas de localidade usarão este local. Para obter mais informações sobre as localidades que são suportadas em ColdFusion, você pode consultar a documentação do ColdFusion, ou acessar a variável server.coldfusion.supportedLocales.

As you begin working with locale specific functions, you will probably notice that many of these functions have a non-locale specific twin. As a general rule, aside from some minor locale specific differences, the functions are identical. The following are the locale specific versions of some functions we have already covered in this chapter:

À medida que você começar a trabalhar com funções específicas de localidade, provavelmente você vai notar que muitas destas funções têm uma gêmea específica de não-localidade. Como regra geral, com exceção de algumas pequenas diferenças de localidade específica, as funções são idênticas. O seguinte são algumas versões de funções de localidade específica de algumas funções já conhecidas:

LSIsNumeric() é usada para testar diretamente uma variável para ver se ela é numérica.

<cfset newLocal = setLocale("Dutch (Belgian)")>
<cfset testVar = "foo">
<cfoutput>#lSIsNumeric(testVar)#</cfoutput>
NO

LSCurrencyFormat() é usada para formatar um número no formato monetário de localidade específica. É muito similar à função  dollarFormat() com uma exceção.  The exception being that lSCurrencyFormat() has an optional type parameter. Type can be: none, local, or international. The Type parameter controls what type of formatting is used with the basic decimal number. For our example, we will ignore this parameter allowing the type parameter to default to the “local” value:

A exceção é que LSCurrencyFormat () tem um parâmetro opcional Type. Ele pode ser: “none”, “local” ou “international”. O parâmetro Type controla o tipo de formatação é usado com o número de base decimal. Para o nosso exemplo, iremos ignorar este parâmetro permitindo que o parâmetro type padrão seja o valor “local”:

<cfset newLocal = setLocale("Dutch (Belgian)")>
<cfset testNum = -537>
<cfoutput>#lSCurrencyFormat (testNum)#</cfoutput>
-537,00 BF

A função LSEuroCurrencyFormat() é similar à LSCurrencyFormat(), com a exceção de que se o país da atual localodade aceitar o Euro como moeda local, ela também exibirá o símbolo de moeda Euro (€), ou a sigla internacional do Euro (EUR).

A função LSNumberFormat() funciona da mesma maneira que a numberFormat(), somente o conteúdo da máscara se atapta à configuração específica da localidade:

<cfset newLocal = setLocale("Dutch (Belgian)")>
<cfset testNum = "-537">
<cfset testNum2 = "5735">
<cfset testNumTotal = testNum + testNum2>
<cfoutput>
#lSNumberFormat(testNum,"-$_,____.__")#<BR>
#lSNumberFormat(testNum2,"-$_,____.__")#<BR>
--------------<BR>
#lSNumberFormat(testNumTotal,"-$_,____.__")#
</cfoutput>

Executando esse código acima, produz-se o seguinte resultado:

BF- 537,00
BF 5.735,00
————–
BF 5.198,00

by Jeremy Petersen

Leave a comment