Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
ВнизФормат чисел Найти похожие ветки
← →
ValeX (2002-07-03 14:24) [0]Есть, например, числа:
0.000001
5.061
48.3016
Необходимо выводить на Label в формате - 2 цифры после запятой,
но если вторая цифра нуль, ее не выводить, и если два ноля,
их не показывать.
ЗЫ FloatToStrF не предлагать, надо универсальную процедуру,
чтобы ввел любое число, а на выходе стринг.
← →
MBo (2002-07-03 14:34) [1]ну хоть так
s:=formatfloat("0.00",d);
while (s[length(s)]="0") do delete(s,length(s),1);
//if (s[length(s)]=".") then delete(s,length(s),1);
//если надо убирать точку
label1.caption:=s;
← →
Kaban (2002-07-03 14:39) [2]см в helpe функцию formatfloat там есть пример, можно обойтись и без while
← →
alexdbases (2002-07-03 14:40) [3]В хелпа есть Format()
← →
Andrey007 (2002-07-03 14:41) [4]function GetNum(x: Real): String;
var s,t: String;
i,j: Word;
begin
s:=FloatToStr(Round(x*100)/100);
t:="";
for i:=0 to length(s) do
begin
if i>pos(DecimalSeparator,s) then
begin
if s[pos(DecimalSeparator,s)+1]<>"0" then t:=t+s[i];
if s[pos(DecimalSeparator,s)+2]<>"0" then t:=t+s[i];
Break
end
else t:=t+s[i]
end;
Result:=t
end;
← →
Kaban (2002-07-03 14:42) [5]2Andrey007
Извращение
← →
MBo (2002-07-03 14:43) [6]>Kaban ©
и точно ;)
label1.caption:=formatfloat("0.##",d);
← →
Johnmen (2002-07-03 14:45) [7]FormatFloat("0.##",<число>);
← →
ValeX (2002-07-03 14:48) [8]Andrey007
не пашет :(
← →
Kaban (2002-07-03 14:49) [9]ну и наконец я от себя добавлю:
FormatFloat("0.##", Твое число);
:)
← →
Kaban (2002-07-03 14:50) [10]как это не пашет?
← →
Andrey007 (2002-07-03 14:55) [11]2 Valex:
Та ошибка была. Надо так:
if s[pos(DecimalSeparator,s)+1]<>"0" then t:=t+s[pos(DecimalSeparator,s)+1]
else
begin
if s[pos(DecimalSeparator,s)+2]<>"0" then t:=t+"0"+s[pos(DecimalSeparator,s)+2];
Break
end;
if s[pos(DecimalSeparator,s)+2]<>"0" then t:=t+s[pos(DecimalSeparator,s)+2];
2 Kaban & MBo:
Если Valex этого хочет, то пусть
← →
ValeX (2002-07-03 14:57) [12]
Kaban
Andrey007
оказалось достаточно:
Result:=FloatToStr(Round(Value*100)/100);
:)
To All, tnx!
← →
Кулюкин Олег (2002-07-03 15:01) [13]FormatFloat("0.##", MyValue)
← →
Kaban (2002-07-03 15:01) [14]Вы полагаете Result:=FloatToStr(Round(Value*100)/100);
проще чем, упомянутое пять раз FormatFloat("0.##", MyValue)?
← →
MBo (2002-07-03 15:07) [15]забавно, что простые вопросы часто вызывают бурю постингов ;)
← →
Kaban (2002-07-03 15:10) [16]я так понимаю, что некоторые не хотят просмотреть, что отвечали другие, и несмотря на то, что уже дано 10 ответов лепят свой.
Иначе например, ответ от Johnmen в (03.07.02 14:45), который появился спустя 11 минут после первого упоминания функции formatfloat ничем не объяснить
← →
MBo (2002-07-03 15:14) [17]>некоторые не хотят просмотреть, что отвечали другие
не обязательно - иногда ветки загрузишь, ответишь не сразу (особенно по dialup), а за это время налетят коршуны ;)
← →
Kaban (2002-07-03 15:17) [18]ну если так, то да. уже привык мерить своими мерками
← →
Johnmen (2002-07-03 15:24) [19]>Kaban © (03.07.02 15:10)
Ну зачем же так...Я всегда в обязательном порядке читаю все предшествующие посты.
И если тебе нетрудно - посмотри разницу менду моим ответом и тем,
который появился спустя 11 минут после первого упоминания функции formatfloat
← →
Kaban (2002-07-03 15:26) [20]Да я, собственно, никого не хотел обидеть
← →
Johnmen (2002-07-03 15:38) [21]А я и не обижаюсь, просто категоричность несколько напрягла :)))
Вообще, прав MBo © (03.07.02 15:14)...
← →
Anatoly Podgoretsky (2002-07-03 16:01) [22]Не ну что бы была справедливость, то FormatFloat("0.##", не наше число);
← →
ValeX (2002-07-03 16:11) [23]
to ALL
Вопрос снят, всем спасибо :)
ЗЫ Только уточнение:
FormatFloat("0.##", моё число);
:))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.012 c