Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  


Основы Delphi
StrToFloat
Функция
Преобразует числовую строку в значение с плавающей запятой SysUtils unit
  
1 function StrToFloat ( FloatString : string ) : Extended;

2 function StrToFloat ( FloatString : string; const FormatSettings : TFormatSettings ) : Extended;
Описание
Функция StrToFloat конвертирует числовую строку FloatString, например '123.456' в значение с плавающей точкой с типом Extended.
Она поддерживает целый формат, формат с плавающей точкой и научный (экспоненциальный) формат.

Если в FloatString (преобразуемой строке) встретился символ, отделяющий целое от дроби, то он должен соответствовать текущему значению переменной DecimalSeparator ( точка - разделитель ).

Второй вариант этой функции предназначен для использования в потоках. Перед вызовом функции вы должны заполнить запись FormatSettings. Функция делает локальную копию глобальных переменных форматирования, что делает ее потокобезопасной.
Примечания
Исключение EConvertError будет вызвано, если есть ошибки в FloatString, таких как конечных пробелов или недопустимых десятичных символов.
Похожие команды
Extended  Тип с плавающей запятой обладающий самой высокой точностью и вместимостью

FloatToStr  Преобразует значение с плавающей запятой в строку

FloatToStrF  Преобразует значение с плавающей запятой в строку с форматированием

TFormatSettings  Запись для содержания региональных значений для thread-safe функций

 
Пример кода : Преобразование строки числа научного формата
var
  stringValue : string;
  floatValue  : Extended;

begin
  // Установка исходную строку, содержащую представление числа
  stringValue := '123.456E+002';

  // Его преобразование в число с плавающей запятой
  floatValue  := StrToFloat(stringValue);

  // И показ значения
  ShowMessage(stringValue+' = '+FloatToStr(floatValue));
end;
123.456E+002 = 12345.6
 
Пример кода : Захват ошибок строковых преобразований
var
  A : Extended;

begin
  // Мы перехватим ошибки преобразования
  try
    A := StrToFloat('10 E 2');    // Средние пробелы не поддерживаются
  except
    on Exception : EConvertError do
      ShowMessage(Exception.Message);
  end;

  try
    A := StrToFloat('$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
 



© Форум Delphi   |  Блог программистов   |  Создание и продвижение сайтов - "Веб сателлит"  |  Ссылки   |  Английская версия