FormatFloat и обратно

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

FormatFloat и обратно

Сообщение alexs »

Глупый вопрос.
Есть функция FormatFloat
А вот как обратно полученную строку превратить в число? TextToFloat и основанные на ней не работают. Проблема в разделителе тысяч. Там прям в коде написано:

Код: Выделить всё

  //ThousandSeparator not allowed as by Delphi specs
Аватара пользователя
wofs
постоялец
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань
Контактная информация:

Re: FormatFloat и обратно

Сообщение wofs »

Я делаю таким велосипедом:

Код: Выделить всё

              
for N:= Length(Result) downto 1 do
      if not (Result[N] in [DefaultFormatSettings.DecimalSeparator, '0'..'9']) then Delete(Result, N, 1);
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: FormatFloat и обратно

Сообщение Vadim »

alexs
Я тоже сначала вручную убираю разделители тысяч:

Код: Выделить всё

СтрокаСПравильнымЧислом:=StringReplace(ИсходнаяСтрокаСЧислом, ПодстрокаРазделителяТысяч, '',[rfReplaceAll]);
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3067
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Re: FormatFloat и обратно

Сообщение Снег Север »

Делал парсер строк в числа для программы, вытаскивавшей числовые данные с разнообразных сайтов. Да, только так - надо заранее знать что используется в качестве разделителя целой и дробной части, а потом очистка от всего лишнего. Обычно через Stringreplace.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Re: FormatFloat и обратно

Сообщение alexs »

Ок. Спасибо. Наверное функцию свою в модуль добавлю.
Ответить