Description |
The StrToCurr function converts a number string, CurrString such as '123.456' into a Currency value.
It supports integer, floating point, and scientific (exponent) formats.
If a decimal point appears in CurrString, then it must match the current DecimalSeparator value.
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.
|
|
Notes |
The EConvertError exception is thrown if there are errors in CurrString, such as trailing blanks or invalid decimal characters.
|
|
Related commands |
Currency |
|
A floating point type with 4 decimals used for financial values |
CurrToStr |
|
Convert a currency value to a string |
CurrToStrF |
|
Convert a currency value to a string with formatting |
Format |
|
Rich formatting of numbers and text into a string |
TFormatSettings |
|
A record for holding locale values for thread-safe functions |
|
|
|
Example code : Converting a scientific format number string |
var
stringValue : string;
currValue : Currency;
begin // Set up the source string containing a number representation
stringValue := '123.456E+002';
// Convert it to a floating point number
currValue := StrToCurr(stringValue);
// And display the value
ShowMessage(stringValue+' = '+CurrToStr(currValue));
end;
|
Show full unit code |
123.456E+002 = 12345.6
|
|
Example code : Catching string conversion errors |
// Full Unit code. // ----------------------------------------------------------- // You must store this code in a unit called Unit1 with a form // called Form1 that has an OnCreate event called FormCreate. unit Unit1; interface uses SysUtils, // Unit containing the StrToCurr command Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} // Include form definitions procedure TForm1.FormCreate(Sender: TObject); var
A : Currency;
begin // We will catch conversion errors
try A := StrToCurr('10 E 2'); // Middle blanks are not supported
except
on Exception : EConvertError do
ShowMessage(Exception.Message);
end;
try A := StrToCurr('$FF'); // Hexadecimal values are not supported
except
on Exception : EConvertError do
ShowMessage(Exception.Message);
end;
end; end.
|
Hide full unit code |
'10 E 2' is not a valid floating point value
'$FF' is not a valid floating point value
|
|