Форум: "Начинающим";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];
ВнизКоллеги , подскажите как при выводе вместо запятой , Найти похожие ветки
← →
smartleds (2008-05-12 16:07) [0]разделяющую целую и дробную части у вещественного числа, вывести точку.
Я вывожу так
form1.Memo1.Lines.Append(" level="+floattostrf(level,ffFixed,3,2)+" ");
выводится в таком формате
3,03м
level= 3,03
level= 2,97
и т.д.
Вот вместо запятой току можно как то вывести, хотябы не в Memo, а в файл?
← →
Johnnnn (2008-05-12 16:10) [1]i:=3,03;
s:=inttostr(i);
s:=copy(s, 1,1)+"."+copy(s, 3, length(s));
← →
Palladin © (2008-05-12 16:13) [2]
> Johnnnn (12.05.08 16:10) [1]
1. в каком это инетересно компиляторе паскаля, запятая является десятичным разделителем?
2. а что если будет 23.03 ?
← →
Johnnnn (2008-05-12 16:17) [3]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));
← →
smartleds (2008-05-12 16:21) [4]
> 1. в каком это инетересно компиляторе паскаля, запятая является
> десятичным разделителем?
> 2. а что если будет 23.03 ?
Может я не правильно задал вопрос,
Задача такая есть вещественная переменная типа real , ее значения нужно переодически записывать в файл но целое от дробного нужно отделять не запятой а точкой
если писать так
write(outfile, floattostrf(level,ffGeneral,3,2) ); то отделяется запятой, а нужно точкой.
← →
smartleds (2008-05-12 16:22) [5]
> s:=inttostr(i);
А какой тип у переменной "s"?
← →
Anatoly Podgoretsky © (2008-05-12 16:23) [6]> smartleds (12.05.2008 16:07:00) [0]
STR
← →
Palladin © (2008-05-12 16:24) [7]
> Johnnnn (12.05.08 16:17) [3]
а ты в курсе, что ты бредишь, хочешь попрактиковаться, лучше не отвечай, а перейди в RO - ответов
1. Компиляторы паскаля от Borland и Хейльсберга, как и сказано в спецификации, десятичным разделителем считают точку
2. inttostr, это перевод целочисленного значения, а ни как не значения с плавающей/фиксированной запятой
3. ну и наконец, что бы использовать в строковом представлении в качестве десятичного разделителя точку, а не DecimalSeparator есть куча решений по мимо, столь неоптимизированной, обработки строк, например поменять на время значение этого самого DecimalSeparator
← →
Johnnnn (2008-05-12 16:39) [8]Ну нескажите малоли а может автор вопроса чтото из моего ответа и узнает интиресное!:)
← →
Johnnnn (2008-05-12 16:44) [9]К примеру я невкурсе что автор зделал до етого чтобы у него вышло значение 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;
← →
Kolan © (2008-05-12 16:46) [10]> Вот вместо запятой току можно как то вывести, хотябы не
> в Memo, а в файл?
Пользуйсяfunction FloatToStr(Value: Extended; var FormatSettings: TFormatSettings): string; overload;
← →
Anatoly Podgoretsky © (2008-05-12 16:46) [11]Что только программист не придумает, лишь бы не работать.
← →
Kolan © (2008-05-12 16:47) [12]> s:=copy(s, 1, pos(",", s)-1)+"."+copy(s, pos(",",s)+1, length(s)
> );
Про StringReplace слыхал?
← →
Johnnnn (2008-05-12 16:55) [13]Ну вот елки палки видите а вы меня уже кудато послали:) Теперь я новую функцию знаю StringReplace, честно незнал до еtoго:(
← →
Anatoly Podgoretsky © (2008-05-12 16:56) [14]> Johnnnn (12.05.2008 16:55:13) [13]
А сообщение насчет STR игнорируем, а это как раз прямая функция, а для вывод в файл и ее не надо.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c