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

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

Формат чисел


Страницы:   1 2

ValeX ©   (2002-07-03 14:24:00) 

Есть, например, числа:
0.000001
5.061
48.3016
Необходимо выводить на Label в формате - 2 цифры после запятой,
но если вторая цифра нуль, ее не выводить, и если два ноля,
их не показывать.

ЗЫ FloatToStrF не предлагать, надо универсальную процедуру,
чтобы ввел любое число, а на выходе стринг.


ValeX   (2002-07-03 16:11:00) [1]


to ALL

Вопрос снят, всем спасибо :)

ЗЫ Только уточнение:

FormatFloat("0.##", моё число);

:))


Anatoly Podgoretsky   (2002-07-03 16:01:00) [2]

Не ну что бы была справедливость, то FormatFloat("0.##", не наше число);


Johnmen   (2002-07-03 15:38:00) [3]

А я и не обижаюсь, просто категоричность несколько напрягла :)))

Вообще, прав MBo © (03.07.02 15:14)...


Kaban   (2002-07-03 15:26:00) [4]

Да я, собственно, никого не хотел обидеть


Johnmen   (2002-07-03 15:24:00) [5]

>Kaban © (03.07.02 15:10)

Ну зачем же так...Я всегда в обязательном порядке читаю все предшествующие посты.
И если тебе нетрудно - посмотри разницу менду моим ответом и тем,
который появился спустя 11 минут после первого упоминания функции formatfloat



Kaban   (2002-07-03 15:17:00) [6]

ну если так, то да. уже привык мерить своими мерками


MBo   (2002-07-03 15:14:00) [7]

>некоторые не хотят просмотреть, что отвечали другие
не обязательно - иногда ветки загрузишь, ответишь не сразу (особенно по dialup), а за это время налетят коршуны ;)


Kaban   (2002-07-03 15:10:00) [8]

я так понимаю, что некоторые не хотят просмотреть, что отвечали другие, и несмотря на то, что уже дано 10 ответов лепят свой.
Иначе например, ответ от Johnmen в (03.07.02 14:45), который появился спустя 11 минут после первого упоминания функции formatfloat ничем не объяснить


MBo   (2002-07-03 15:07:00) [9]

забавно, что простые вопросы часто вызывают бурю постингов ;)


Kaban   (2002-07-03 15:01:00) [10]

Вы полагаете Result:=FloatToStr(Round(Value*100)/100);
проще чем, упомянутое пять раз FormatFloat("0.##", MyValue)?



Кулюкин Олег   (2002-07-03 15:01:00) [11]

FormatFloat("0.##", MyValue)


ValeX   (2002-07-03 14:57:00) [12]


Kaban
Andrey007

оказалось достаточно:

Result:=FloatToStr(Round(Value*100)/100);

:)

To All, tnx!


Andrey007   (2002-07-03 14:55:00) [13]

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 этого хочет, то пусть


Kaban   (2002-07-03 14:50:00) [14]

как это не пашет?


Kaban   (2002-07-03 14:49:00) [15]

ну и наконец я от себя добавлю:

FormatFloat("0.##", Твое число);

:)



ValeX   (2002-07-03 14:48:00) [16]

Andrey007

не пашет :(


Johnmen   (2002-07-03 14:45:00) [17]

FormatFloat("0.##",<число>);


MBo   (2002-07-03 14:43:00) [18]

>Kaban ©

и точно ;)

label1.caption:=formatfloat("0.##",d);


Kaban   (2002-07-03 14:42:00) [19]

2Andrey007
Извращение


Andrey007   (2002-07-03 14:41:00) [20]

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;


Страницы:   1 2

Наверх

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