![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Коллеги , подскажите как при выводе вместо запятой ,
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));