Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

formatfloat


Konus ©   (2007-05-08 07:35:00) 

edit5.text:=FormatFloat('0.00',strtofloat(edit5.text)); //если введено число формата 4,5 , вывести 4,50

эта процедура возвращает текст вида 4,56 (да и strtofloat принимает только через запятую)
а мне надо через точку, т.е. 4.56

как можно реализовать?


ЮЮ   (2007-05-08 11:08:00) [1]

> Они тоже используют DecimalSeparator

Неужели?

procedure TForm1.Button1Click(Sender: TObject);
var
 f: Double;
 s: string;
begin
 f := 3.1415;
 DecimalSeparator := '.';
 Str(f:10:2, s);
 Memo1.Lines.Add(DecimalSeparator + ' ' + s);
 DecimalSeparator := ',';
 Str(f:10:2, s);
 Memo1.Lines.Add(DecimalSeparator + ' ' + s);
end;


На выходе:

.       3.14
,       3.14


icWasya   (2007-05-08 10:30:00) [2]

>В этом случае вообще проще воспользоваться процедурой Str.
>А для чтения - Val или Read
Они тоже используют DecimalSeparator


ЮЮ   (2007-05-08 09:18:00) [3]

> дело в том, что данные должны сохраняться в определенном
> формате в файл

В этом случае вообще проще воспользоваться процедурой Str.
А для чтения - Val или Read


Konus   (2007-05-08 08:46:00) [4]

дело в том, что данные должны сохраняться в определенном формате в файл
через точку


ЮЮ   (2007-05-08 08:21:00) [5]

> дело в том, что программой будут пользоваться на других
> компьютерах


И если апользователь на том компьютере считает, что разделителем должна быть запятая, то и должна быть запятая. А если точка - то точка.
P.S. Перед strtofloat замени в строке . и , на DecimalSeparator


MBo   (2007-05-08 08:14:00) [6]

см. DecimalSeparator


Konus   (2007-05-08 08:11:00) [7]

дело в том, что программой будут пользоваться на других компьютерах
не будут же все настраивать как надо

может, как-то обрабатывать строку
например, ввожу 4.45, сначала точка заменяется на запятую, потом strtofloat, приводим в нужный формат, заменяем запятую на точку и выводим как надо

один только вопрос, как можно это обработать?


ЮЮ   (2007-05-08 08:01:00) [8]

Разделитель дробной части определяется настройками компьютера.

> а мне надо через точку

Ну так настрой компьютер как надо.


Наверх

Титульная страница Поиск, карта сайта Написать письмо