DelphiBasics
formatfloat
Function
Rich formatting of a floating point number into a string SysUtils unit
1 function formatfloat(const Formatting string; Value Extended):string;
2 function formatfloat (const Formatting string; Value Extended; FormatSettings TFormatSettings:string;
Description
The FormatFloat function provides rich Formatting of a floating point number Value into a string.
 
The Formatting string may contain a mix of freeform text and control characters:
 
  : Forces digit display or 0
: Optional digit display
: Forces display of thousands
: Forces display of decimals
E+  : Forces signed exponent display
E-  : Optional sign exponent display
: Separator of +ve and -ve and zero values

 
These are best understood by looking at the sample code.
 
Version 2 of this function is for use within threads. You furnish the FormatSettings record before invoking the call. It takes a local copy of global formatting variables that make the routine thread safe.
Related commands
CurrencyDecimalsDefines decimal digit count in the Format function
CurrencyFormatDefines currency string placement in curr display functions
CurrencyStringThe currency string used in currency display functions
DecimalSeparatorThe character used to display the decimal point
FloatToStrFConvert a floating point value to a string with formatting
FormatRich formatting of numbers and text into a string
FormatCurrRich formatting of a currency value into a string
FormatDateTimeRich formatting of a TDateTime variable into a string
NegCurrFormatDefines negative amount formatting in currency displays
StrToFloatConvert a number string into a floating point value
ThousandSeparatorThe character used to display the thousands separator
 Download this web site as a Windows program.




 
Example code : Showing all of the formatting data types
var
  float : extended;

begin
  // Set up our floating point number
  float := 1234.567;

  // Display a sample value using all of the format options

  // Round out the decimal value
  ShowMessage('##### : '+FormatFloat('#####', float));
  ShowMessage('00000 : '+FormatFloat('00000', float));
  ShowMessage('0     : '+FormatFloat('0'    , float));
  ShowMessage('#,##0 : '+FormatFloat('#,##0', float));
  ShowMessage(',0    : '+FormatFloat(',0'   , float));
  ShowMessage('');

  // Include the decimal value
  ShowMessage('0.#### : '+FormatFloat('0.####', float));
  ShowMessage('0.0000 : '+FormatFloat('0.0000', float));
  ShowMessage('');

  // Scientific format
  ShowMessage('0.0000000E+00 : '+FormatFloat('0.0000000E+00', float));
  ShowMessage('0.0000000E-00 : '+FormatFloat('0.0000000E-00', float));
  ShowMessage('#.#######E-## : '+FormatFloat('#.#######E-##', float));
  ShowMessage('');

  // Include freeform text
  ShowMessage('"Value = "0.0 : '+FormatFloat('"Value = "0.0', float));
  ShowMessage('');

  // Different formatting for negative numbers
  ShowMessage('0.0 : '+FormatFloat('0.0'              , -1234.567));
  ShowMessage('0.0 "CR";0.0 "DB" : '+
              FormatFloat('0.0 "CR";0.0 "DB"', -1234.567));
  ShowMessage('0.0 "CR";0.0 "DB" : '+
              FormatFloat('0.0 "CR";0.0 "DB"',  1234.567));
  ShowMessage('');

  // Different format for zero value
  ShowMessage('0.0 : '+FormatFloat('0.0' , 0.0));
  ShowMessage('0.0;-0.0;"Nothing" : '+
              FormatFloat('0.0;-0.0;"Nothing"', 0.0));
end;
Show full unit code
  ##### : 1235
  00000 : 01235
  0 : 1235
  #,##0 : 1,235
  ,0 : 1,235
  
  0.#### : 1234.567
  0.0000 : 1234.5670
  
  0.0000000E+00 : 1.2345670E+03
  0.0000000E-00 : 1.2345670E03
  #.#######E-## : 1.234567E3
  
  "Value = " : Value = 1234.6
  
  0.0 : -1234.6
  0.0 "CR";0.0 "DB" : 1234.6 DB
  0.0 "CR";0.0 "DB" : 1234.6 CR
  
  0.0 : 0.0
  0.0;-0.0;"Nothing" : Nothing
 
Delphi Programming © Neil Moffatt . All rights reserved.  |  Home Page