Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > real -> string и обратно


Автор: Digit 8.7.2005, 09:44
Как переводить дробные цифры (например 4.435 или 0.769) в стоку и обратно (из строки в цифры).

Автор: Satana 8.7.2005, 09:47
FloatToStr(x:real) - В строку
StrToFloat(str:string) - В число

Автор: Digit 8.7.2005, 09:50
Спасибо, Satana.

Только одно уточнение: число должно быть через точку или запятую?

Автор: Bes 8.7.2005, 10:27
FloatToStr(x:real) - х однозначно через точку иначе не откомпилится
StrToFloat(str:string) - str
Зависит от настроек компа: Если у тебя разделитель точка - значит через точку если запятая - через запятую.
Да, и результат от FloatToStr(x:real) соответсвенно будет от этого же зависить.

Автор: Digit 8.7.2005, 10:35
а возможно сделать чтобы он и так и так проглатывал?

Автор: Bes 8.7.2005, 10:39
Я делал так: писал свою процедуру которой передавал строку str
заменял в ней все точки на запятые пробовал перегнать ее в рил если не получалось перегонял все запятые на точки и опять пробовал если и так не получалось выдавал ошибку что это не число.
говорят можно определить какой у тебя разделитель и не делать в моей процедуре одно действие

Автор: Digit 8.7.2005, 10:43
не осталось кода процедуры? smile

Автор: Rennigth 8.7.2005, 11:26
Код

function CorrectDecimalSeparators(const Text: string): string;
begin
  Result := StringReplace(Text, ',', DecimalSeparator, [rfReplaceAll]);
  Result := StringReplace(Text, '.', DecimalSeparator, [rfReplaceAll]);
  if Length(Result) > 0 then
  begin
    if Result[1] = DecimalSeparator then
      Result := '0' + Result;
    if Result[Length(Result)] = DecimalSeparator then
      Result := Result + '0';
  end;
end;


Автор: Digit 8.7.2005, 11:40
Rennigth, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)