Функция StrToCurr в Delphi преобразует числовую строку в денежное выражение.
StrUtils unit
- function StrToCurr (CurrencyString : string) : Currency;
- function StrToCurr (CurrencyString : string; const FormatSettings : TFormatSettings) : Currency;
Функция StrToCurr конвертирует числовую строку CurrString, например '123.456' в значение с типом Currency (валюта). Она поддерживает целый формат, формат с плавающей точкой и научный (экспоненциальный) формат.
Если в CurrString встретился символ, отделяющий целое от дроби, то он должен соответствовать текущему значению переменной DecimalSeparator.
Второй вариант этой функции предназначен для использования в потоках. Перед вызовом функции вы должны заполнить запись FormatSettings. Функция делает локальную копию глобальных переменных форматирования, что делает ее потокобезопасной.
Примечание.
Исключение EConvertError выбрасывается, если есть ошибки в CurrString, типа конечных пробелов или недопустимых десятичных символов.
Функция StrToCurr: Преобразование научного формата числовой строки
var
stringValue : string;
currValue : Currency;
begin
// Установка исходной строки, содержащую представление числа
stringValue := '123.456E+002';
// Её преобразование в вещественное число
currValue := StrToCurr(stringValue);
// И показ значения
ShowMessage(stringValue+' = '+CurrToStr(currValue));
end;
Результат
123.456E+002 = 12345.6
Функция StrToCurr: Захват ошибок строковых преобразований
var
A : Currency;
begin
// Мы захватим конверсионные ошибки
try
A := StrToCurr('10 E 2'); // Средние пробелы не поддерживаются
except
on Exception : EConvertError do
ShowMessage(Exception.Message);
end;
try
A := StrToCurr('$FF'); // Шестнадцатеричные значения не поддерживаются
except
on Exception : EConvertError do
ShowMessage(Exception.Message);
end;
end;
Результат
'10 E 2' is not a valid floating point value
'$FF' is not a valid floating point value
Похожие функции и команды
Currency — тип с плавающей запятой с 4 десятичными числами, используемыми для финансовых значений.
CurrToStr — преобразует денежную величину в строку.
CurrToStrF — преобразует денежную величину в строку с форматированием.
Format — богатое форматирование чисел и текста в строке.
TFormatSettings — запись для содержания региональных значений для thread-safe функций.
