LSParseCurrency

Description

Converts a locale-specific currency string into a formatted number. Attempts conversion by comparing the string with each the three supported currency formats (none, local, international) and using the first that matches.

Returns

A formatted number (string representation of a number) that matches the value of the parameter.

Function syntax

LSParseCurrency(string [, locale])

History

ColdFusion 8: Added the locale parameter.

ColdFusion MX: Changed formatting behavior: this function might return different formatting than in earlier releases. This function uses Java standard locale formatting rules on all platforms.

Parameters

Parameter

Description

string

A locale-specific string a variable that contains one

locale

Locale to use instead of the locale of the page when processing the function

Usage

This function uses the locale formatting rules of the JVM (specified in the ColdFusion Administrator Java and JVM page) on all platforms. These rules changed between Sun JVM 1.3.1 and JVM 1.4.1:

  • JVM 1.3.1 requires that the local and international versions of currencies of countries in the Euro zone be formatted using the older, country-specific designations, such as 100.000,00 DM or DEM100.000,00 for the German (Standard) locale. Use the LSParseEuroCurrency function to parse euro currencies in these locales with JVM 1.3.1.

  • JVM 1.4.1 requires that currencies for Euro zone countries be expressed as euros; for example 100.000,00 BADCHAR or EUR100.000,00.

    Note: The LSIsCurrency function always returns True if the locale is in the Euro currency zone and the currency is expressed in euros, including when using JVM 1.3.1. As a result, with older JVMs, LSIsCurrency does not ensure that LSParseCurrency returns a value.

    To set the default display format of date, time, number, and currency values, use the SetLocale function.

    For a list of the locale-specific formats used to parse the currency, see LSCurrencyFormat.

Example

<h3>LSParseCurrency Example</h3> 
<p>LSParseCurrency coverts a locale-specific currency string to a number.  
    Attempts conversion through each of the three default currency formats. 
<!--- loop through a list of locales; show currency values for 123,456 units ---> 
<cfloop LIST = "#Server.Coldfusion.SupportedLocales#" 
index = "locale" delimiters = ","> 
    <cfset oldlocale = SetLocale(locale)> 
    <cfoutput><p><B><I>#locale#</I></B><br> 
        Local: #LSCurrencyFormat(123456.78, "local")#<br> 
        Parsed local Currency: 
    #LSParseCurrency(LSCurrencyFormat(123456,"local"))#<br> 
        International: #LSCurrencyFormat(123456.78999, "international")#<br> 
        Parsed International Currency: 
    #LSParseCurrency(LSCurrencyFormat(123456.78999,"international"))#<br> 
        None: #LSCurrencyFormat(123456.78999, "none")#<br> 
        Parsed None formatted currency: 
    #LSParseCurrency(LSCurrencyFormat(123456.78999,"none"))#<br> 
        <hr noshade> 
    </cfoutput> 
</cfloop>