Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.27;
Скачать: CL | DM;

Вниз

formatfloat   Найти похожие ветки 

 
Konus   (2007-05-08 07:35) [0]

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

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

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


 
ЮЮ ©   (2007-05-08 08:01) [1]

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

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

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


 
Konus   (2007-05-08 08:11) [2]

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

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

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


 
MBo ©   (2007-05-08 08:14) [3]

см. DecimalSeparator


 
ЮЮ ©   (2007-05-08 08:21) [4]

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


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


 
Konus   (2007-05-08 08:46) [5]

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


 
ЮЮ ©   (2007-05-08 09:18) [6]

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

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


 
icWasya ©   (2007-05-08 10:30) [7]

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


 
ЮЮ ©   (2007-05-08 11:08) [8]

> Они тоже используют 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



Страницы: 1 вся ветка

Текущий архив: 2007.05.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
2-1178709554
Alon121
2007-05-09 15:19
2007.05.27
Открытый массив для записей


2-1178544704
Inna_Z
2007-05-07 17:31
2007.05.27
Как узнать версию InterBase?


2-1178477740
Dmitry_177
2007-05-06 22:55
2007.05.27
Exit


15-1177630671
SerJaNT
2007-04-27 03:37
2007.05.27
.htaccess


2-1178585925
Booka Shade
2007-05-08 04:58
2007.05.27
Поиск в файле, по маске.