Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 173

/ вопрос решён /

Доброго времени суток, уважаемые эксперты! Подскажите пожалуйста, как в Delphi (7) преобразовать данные типа real в string и обратно. Заранее благодарен.

AlphA Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: AlphA (статус: Посетитель)
Вопрос отправлен: 7 декабря 2008, 21:23
Состояние вопроса: решён, ответов: 3.

Ответ #1. Отвечает эксперт: min@y™

TryStrToFloat()
Ну и FloatToStrF(). Самый оно.

Приложение:
  1. Converts a floating point value to a string, using a specified Format, Precision, and Digits.
  2.  
  3. Unit
  4.  
  5. SysUtils
  6.  
  7. Category
  8.  
  9. Floating point conversion routines
  10.  
  11. Delphi syntax:
  12.  
  13. function FloatToStrF(Value: Extended; Format: TFloatFormat; Precision, Digits: Integer): string; overload;
  14. function FloatToStrF(Value: Extended; Format: TFloatFormat; Precision, Digits: Integer; const FormatSettings: TFormatSettings): string; overload;
  15.  
  16. C++ syntax:
  17.  
  18. extern PACKAGE AnsiString __fastcall FloatToStrF(Extended Value, TFloatFormat Format, int Precision, int Digits);
  19. extern PACKAGE AnsiString __fastcall FloatToStrF(Extended Value, TFloatFormat Format, int Precision, int Digits, const TFormatSettings FormatSettings);
  20.  
  21. Description
  22.  
  23. FloatToStrF converts the floating-point value given by Value to its string representation.
  24.  
  25. The Value parameter is the value to convert.
  26. The Precision parameter specifies the precision of the given value. It should be 7 or less for values of type Single, 15 or less for values of type Double, and 18 or less for values of type Extended.
  27. The Digits and Format parameters together control how the value is formatted into a string. For details, see the description of TFloatFormat.
  28.  
  29. If the given value is a NAN (not-a-number), the resulting string is 'NAN'. If the given value is positive infinity, the resulting string is 'INF'. If the given value is negative infinity, the resulting string is '-INF'.
  30.  
  31. The first form of FloatToStrF is not thread-safe, because it uses localization information contained in global variables. The second form of FloatToStrF, which is thread-safe, refers to localization information contained in the FormatSettings parameter. Before calling the thread-safe form of FloatToStrF, you must populate FormatSettings with localization information. To populate FormatSettings with a set of default locale values, call GetLocaleFormatSettings.


Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 7 декабря 2008, 21:41
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Николай Рубан

Здравствуйте, AlphA!

Есть стандартные функции FloatToStr() и StrToFloat().

var x:real; 
    s:string;
begin
  s:=FloatToStr(x); //переводим real в строку
  //или
  s:=Format('%f',[x]); //переводим real в строку
 
  x:=StrToFloat(s); //переводим строку в real
end;

Good Luck!

Ответ отправил: Николай Рубан (статус: 10-ый класс)
Время отправки: 7 декабря 2008, 21:44
Оценка за ответ: 5

Ответ #3. Отвечает эксперт: Anderson N.N

Здравствуйте, AlphA!
Вот функция которая кроме перевода строки из текста в строку проверяет возможность преобразования,
и в случае неудачи возвращает заданную вами константу(ее значение выбирают такой какой ваша строка принимать не должна
например -1000000)
она необходима когда вы пытаетесь перевести содержимое скажем Edit1 в число т.к. пользователь может ввести туда строку.

Приложение:
  1.  
  2.  
  3. var f:float;
  4. begin
  5.  


Ответ отправил: Anderson N.N (статус: 2-ой класс)
Время отправки: 7 декабря 2008, 22:06
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 0.

31 января 2011, 19:23: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:58
Выполнено за 0.03 сек.