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

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

Коллеги , подскажите как при выводе вместо запятой ,


smartleds ©   (2008-05-12 16:07:00) 

разделяющую целую и дробную части у вещественного числа, вывести точку.
Я вывожу так
form1.Memo1.Lines.Append(' level='+floattostrf(level,ffFixed,3,2)+'  ');
выводится в таком формате
3,03м
level= 3,03
level= 2,97
и т.д.
Вот вместо запятой току можно как то вывести, хотябы не в Memo, а в файл?


Anatoly Podgoretsky   (2008-05-12 16:56:00) [1]

> Johnnnn  (12.05.2008 16:55:13)  [13]

А сообщение насчет STR игнорируем, а это как раз прямая функция, а для вывод в файл и ее не надо.


Johnnnn   (2008-05-12 16:55:00) [2]

Ну вот елки палки видите а вы меня уже кудато послали:) Теперь я новую функцию знаю StringReplace, честно незнал до еtoго:(


Kolan   (2008-05-12 16:47:00) [3]

> s:=copy(s, 1, pos(',', s)-1)+'.'+copy(s, pos(',',s)+1, length(s)
> );

Про StringReplace слыхал?


Kolan   (2008-05-12 16:46:00) [4]

> Вот вместо запятой току можно как то вывести, хотябы не
> в Memo, а в файл?

Пользуйся
function FloatToStr(Value: Extended; var FormatSettings: TFormatSettings): string; overload;


Anatoly Podgoretsky   (2008-05-12 16:46:00) [5]

Что только программист не придумает, лишь бы не работать.


Johnnnn   (2008-05-12 16:44:00) [6]

К примеру я невкурсе что автор зделал до етого чтобы у него вышло значение 100,99 в мемо
но так уж вышло что оно там есть:) и предположим в первой строке и еще предположим что оно там одно:)
тогда:

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:=memo1.Lines[0];
s:=copy(s, 1, pos(',', s)-1)+'.'+copy(s, pos(',',s)+1, length(s));
memo1.Lines[0]:=s;
end;


Johnnnn   (2008-05-12 16:39:00) [7]

Ну нескажите малоли а может автор вопроса чтото из моего ответа и узнает интиресное!:)


Palladin   (2008-05-12 16:24:00) [8]


> Johnnnn   (12.05.08 16:17) [3]

а ты в курсе, что ты бредишь, хочешь попрактиковаться, лучше не отвечай, а перейди в RO - ответов

1. Компиляторы паскаля от Borland и Хейльсберга, как и сказано в спецификации, десятичным разделителем считают точку

2. inttostr, это перевод целочисленногозначения, а ни как не значения с плавающей/фиксированной запятой

3. ну и наконец, что бы использовать в строковом представлении в качестве десятичного разделителя точку, а не DecimalSeparator есть куча решений по мимо, столь неоптимизированной, обработки строк, например поменять на время значение этого самого DecimalSeparator


Anatoly Podgoretsky   (2008-05-12 16:23:00) [9]

> smartleds  (12.05.2008 16:07:00)  [0]

STR


smartleds   (2008-05-12 16:22:00) [10]


> s:=inttostr(i);

А какой тип у переменной "s"?


smartleds   (2008-05-12 16:21:00) [11]


> 1. в каком это инетересно компиляторе паскаля, запятая является
> десятичным разделителем?
> 2. а что если будет 23.03 ?

Может я не правильно задал вопрос,
Задача такая есть вещественная  переменная типа real , ее значения нужно переодически записывать в файл но целое от дробного нужно отделять не запятой а точкой
если писать так
write(outfile, floattostrf(level,ffGeneral,3,2) ); то отделяется запятой, а нужно точкой.


Johnnnn   (2008-05-12 16:17:00) [12]

1. в каком это инетересно компиляторе паскаля, запятая является десятичным разделителем? - ya vobsche nevkyrse yag otvechau ne dlya togo chtobi cheloveky pomoch a dlya togo ctobi samomy popraktikovatsya
2. а что если будет 23.03 ? - toda tak

i:=3,03;
s:=inttostr(i);
s:=copy(s, 1, pos(',', s)-1)+'.'+copy(s, pos(',',s)+1, length(s));


Palladin   (2008-05-12 16:13:00) [13]


> Johnnnn   (12.05.08 16:10) [1]

1. в каком это инетересно компиляторе паскаля, запятая является десятичным разделителем?
2. а что если будет 23.03 ?


Johnnnn   (2008-05-12 16:10:00) [14]

i:=3,03;
s:=inttostr(i);
s:=copy(s, 1,1)+'.'+copy(s, 3, length(s));


Наверх

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