formatNumber

String sutil.formatNumber ( String number ) (professional and enterprise editions only)
String sutil.formatNumber ( String number, int decimals, boolean padDecimals ) (professional and enterprise editions only)

Description

Returns a number formatted in such a way that it could be parsed as a Float, such as xxxxxxxxx.xxxx. It attempts to figure out if the number is formatted as European or American style, but if it cannot determine which it is, it defaults to American. If the number is something with a k on the end, it will convert the k to thousand (as 000). It will also try to convert m for million and b for billion. It also assumes that you won't have a number like 3.123k or 3.765m, however 3.54m is fine. It figures if you wanted all three of those digits you would have specified it as 3765k or 3,765k

Parameters

  • number String containing the number.
  • decimals (optional) The number of maximum number of decimal places to include in the result. When this value is omitted, any decimals are retained, but none are added
  • padDecimals (optional) Sets whether or not to pad the decimals (convert 5.1 to 5.10 if 2 decimals are specified)

Return Values

Returns a String formatted as a phone number, such as +1 (123) 456-7890x2, or null if the input was null

Change Log

Version Description
5.5.26a Available in all editions.

Examples

Format a scraped abbreviated number as a dollar amount

 // Format a number to two decimal places
 String dollars = sutil.formatNumber("3.75k", 2, true);
 // This would set dollars to the String "3750.00"

 // Format the amount without cents.
 String dollarsNoCents = sutil.formatNumber("3.75m");
 // This would set dollars to the String "3750000"

Format a European number to be inserted in a MySQL statement

 String number = sutil.formatNumber("3.275,10", 2, false);
 // number would now be "3275.1"