Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.013 c
6-47635
cyborg
2002-04-29 21:50
2002.07.15
Socket+WinXP+Закрыть группу=Error+глюк+переполнение


3-47101
DKalinin
2002-06-21 13:49
2002.07.15
Как побороть глюки с форматом передаваемой даты на сервер


1-47322
stupid
2002-06-30 21:15
2002.07.15
Как проверить, есть ли строковое значение в реестре?


3-47118
MikeFW
2002-06-21 10:31
2002.07.15
Проблемы со скоростью обработки TQuery записей из базы данных


1-47294
volph
2002-06-30 17:14
2002.07.15
Покажите пример работы с array property





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский