Note: there is an extensive discussion on converting a string into a decimal. This question asks how to convert a number into a formatted string.
Given a decimal variable, how can I convert that into a formatted string, such as a currency string, i.e. 2000 would become "$2,000.00"? I would have thought this would be an easy task, given the formatting options available in visualforce, e.g. <apex:outputtext value="{0,number,$#,###.##}">
, but there doesn't seem to be analagous functionality for apex. Is there a simple method for achieve this?
I first looked at the decimal.format()
method, but this doesn't take any parameters. Was hoping for something like this
Decimal input = 2000;
String output = input.format('$#,###.##');
I also looked at the String.format(formatString, inputArray)
but you can only use string data types for the input array. Was hoping for something like this
Decimal input = 2000;
String output = String.format('$#,###.##',new Object[] { input });