Главная страница
    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.012 c
1-47312
Raiv
2002-07-01 09:47
2002.07.15
Как включить dll файл в свой exe


6-47647
ikivio
2002-04-24 23:06
2002.07.15
Proxy and E-mail


1-47500
farhad
2002-07-04 12:38
2002.07.15
Уважаемые програмисты, помогите советом


3-47119
olban
2002-06-21 08:01
2002.07.15
Доступ к БД


1-47484
klochkov
2002-07-03 16:49
2002.07.15
Строчки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский