if you use the following functions in SOQL queries, it will support localized result
SELECT statements can include the toLabel() and convertCurrency() functions in support
of localized fields.
toLabel():
Use toLabel() on regular, multi-select, division, or currency code picklist fields (any field that has picklist values returned
by the relevant describe call), data category group and data category unique name fields or RecordType names. Any organization
can use toLabel(). It is particularly useful for organizations that have the Translation Workbench enabled.
For example:
SELECT Company, toLabel(Recordtype.Name) FROM Lead
This query returns lead records with the record type name translated into the language for the user who issued the query.
convertCurrency():
If an organization is multicurrency enabled, you can use convertCurrency() in the SELECT clause to convert currency fields to the user's currency.
Use this syntax for the SELECT clause:
convertCurrency(field)
For example:
SELECT Id, convertCurrency(AnnualRevenue) FROM Account
If an organization has enabled advanced currency management, dated exchange rates will be used when converting currency fields on opportunities, opportunity line items, and opportunity history.
For more information, check the SOQL documentation in salesforce
The % character is supported as part of the outputText format.
You can use syntax like this to achieve the formatting you want
<apex:outputText value="{0, number, ###.0%}">
<apex:param value=".....your value here...."/>
</apex:outputText>
Best Answer
Try using
apex:outputField
, it would do the formatting for you based on your locale.Unfortunately its not possible with
apex:outputText
andapex:param
. Here is a similar idea.There was a comment in the idea which could be helpful but would need bit of modification as per requirement: