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

Вниз

Формат чисел   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.012 c
1-47269
BAY
2002-06-28 22:25
2002.07.15
hlp


7-47829
SemFLY
2002-04-21 18:51
2002.07.15
Возможно ли внести в реестр скрытую запись ?


8-47616
DSG
2002-03-11 15:43
2002.07.15
Отрисовка


1-47482
ricks
2002-07-03 12:58
2002.07.15
Диалоги из ресурсов


3-47074
Prodigy
2002-06-21 06:22
2002.07.15
Инсталятор + автоматическая настройка алиаса