Mega Code Archive

 
Categories / Delphi / Types
 

Tfloatformat - formats for use in floating point number display functions

Description The TFloatFormat type is used by the following SysUtils functions : CurrToStrF For displaying currency values FloatToStrF For general float displaying FloatToText For formatting to an array The possible values of TFloatFormat are : ffGeneral Defines general number formatting that aims to keep the resultant value as compact as possible. It removes trailing zeros and the decimal point where appropriate. No thousand separators are shown. Exponent format is used if the mantissa is too large for the specified Precision value of the formatting command. In this case, the Digits value (0..4) determines the minimum number of exponent digits shown. The decimal point character is determined by the DecimalSeparator variable. ffExponent Commonly referred to as the Scientific or Engineering format, the exponent refers to the letter E followed by a number. The number gives the power of 10 of the number. For example, E+15 means 1015. The exponent always has a + or - sign. This exponent is preceded by a number that always has one digit before the decimal place. For example : 123.456 formats as 1.23456E+2 0.00123 formats as 1.23E-3 The using function Precision parameter gives the number of displayed digits before the E, and the Digits parameter gives the number (0..4) of digits after the E. The decimal point character is determined by the DecimalSeparator variable. ffFixed This format again uses no thousands separator. It displays Precision digits before the decimal point, and Digits digits after. If there are too many digits before the decimal point, then the Exponent format is used instead. The decimal point character is determined by the DecimalSeparator variable. ffNumber Same as ffFixed, except that thousand separators are used. These are defined by the ThousandSeparator variable. ffCurrency Same as ffNumber, but with a currency symbol (string) added, as defined by the CurrencyString variable. Additionally, the formatting is influenced by the CurrencyFormat and NegCurrFormat variables. Notes Note above that the Precision and Digits values of the function using TFloatFormat depend on the format chosen. Related commands CurrencyDecimals Defines decimal digit count in the Format function CurrencyFormat Defines currency string placement in curr display functions CurrencyString The currency string used in currency display functions CurrToStrF Convert a currency value to a string with formatting DecimalSeparator The character used to display the decimal point FloatToStrF Convert a floating point value to a string with formatting NegCurrFormat Defines negative amount formatting in currency displays ThousandSeparator The character used to display the thousands separator Example code : Illustrate the 5 different types of formatting var amount : Extended; begin amount := 1234.56; // Display using ffGeneral formatting ShowMessage('General 4,0 = '+FloatToStrF(amount, ffGeneral, 4, 0)); ShowMessage('General 6,0 = '+FloatToStrF(amount, ffGeneral, 6, 0)); ShowMessage('General 6,2 = '+FloatToStrF(amount, ffGeneral, 6, 2)); ShowMessage('General 3,2 = '+FloatToStrF(amount, ffGeneral, 3, 2)); ShowMessage(''); // Display using ffExponent formatting ShowMessage('Exponent 4,0 = '+FloatToStrF(amount, ffExponent, 4, 0)); ShowMessage('Exponent 6,0 = '+FloatToStrF(amount, ffExponent, 6, 0)); ShowMessage('Exponent 6,2 = '+FloatToStrF(amount, ffExponent, 6, 2)); ShowMessage('Exponent 3,2 = '+FloatToStrF(amount, ffExponent, 3, 2)); ShowMessage(''); // Display using ffFixed formatting ShowMessage('Fixed 4,0 = '+FloatToStrF(amount, ffFixed, 4, 0)); ShowMessage('Fixed 6,0 = '+FloatToStrF(amount, ffFixed, 6, 0)); ShowMessage('Fixed 6,2 = '+FloatToStrF(amount, ffFixed, 6, 2)); ShowMessage('Fixed 3,2 = '+FloatToStrF(amount, ffFixed, 3, 2)); ShowMessage(''); // Display using ffNumber formatting ShowMessage('Number 4,0 = '+FloatToStrF(amount, ffNumber, 4, 0)); ShowMessage('Number 6,0 = '+FloatToStrF(amount, ffNumber, 6, 0)); ShowMessage('Number 6,2 = '+FloatToStrF(amount, ffNumber, 6, 2)); ShowMessage('Number 3,2 = '+FloatToStrF(amount, ffNumber, 3, 2)); ShowMessage(''); // Display using ffCurrency formatting ShowMessage('Currency 4,0 = '+FloatToStrF(amount, ffCurrency, 4, 0)); ShowMessage('Currency 6,0 = '+FloatToStrF(amount, ffCurrency, 6, 0)); ShowMessage('Currency 6,2 = '+FloatToStrF(amount, ffCurrency, 6, 2)); ShowMessage('Currency 3,2 = '+FloatToStrF(amount, ffCurrency, 3, 2)); end; Show full unit code General 4,0 = 1235 General 6,0 = 1234.56 General 6,2 = 1234.56 General 3,2 = 1.23E03 Exponent 4,0 = 1.235E+3 Exponent 6,0 = 1.23456E+3 Exponent 6,2 = 1.23456E+03 Exponent 3,2 = 1.23E+03 Fixed 4,0 = 1235 Fixed 6,0 = 1235 Fixed 6,2 = 1234.56 Fixed 3,2 = 1.23E03 Number 4,0 = 1,235 Number 6,0 = 1,235 Number 6,2 = 1,234.56 Number 3,2 = 1.23E03 Currency 4,0 = £1,235 Currency 6,0 = £1,235 Currency 6,2 = £1,234.56 Currency 3,2 = 1.23E03