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

Вниз

Кол-во символом в числе.   Найти похожие ветки 

 
Цукор5   (2007-08-07 22:54) [0]

Имеем 100 состоящее из 3 чисел.
Имеем 1000 соостоящее из 4 чисел.

Как определить кол-во символом(чисел) в некотором значении ?

Есть ли другой вариант, нежели мой ?
Caption:=IntToStr(Length(IntToStr(High(Integer))));


 
JanMihail ©   (2007-08-07 22:57) [1]

i: Integer;
col: Integer;
....
i := 123456433;
col := length(IntToStr(i));
ShowMessage(IntToStr(Col));


Разве сложно? Вполне нормально. А как ты хотел?


 
Цукор5   (2007-08-07 23:01) [2]

2 JanMihail

Рассмешил ;) А чем [0] отличается от [1] ???


 
JanMihail ©   (2007-08-07 23:04) [3]


> А чем [0] отличается от [1] ???

в [1] нет High


 
JanMihail ©   (2007-08-07 23:06) [4]

Все равно другого варианта на мой взгляд нету.


 
Virgo_Style ©   (2007-08-07 23:29) [5]

для положительных - целая часть логарифма по основанию 10 плюс 1 ?


 
MetalFan ©   (2007-08-07 23:38) [6]

есть)
function GetFigureCount( ANumber: Longword ): Integer;
const
 C_10POWER : array [1..10] of Longword = (  10, 100, 1000,
                                           10000,100000,1000000,
                                           10000000, 100000000, 1000000000,
                                           10000000000 );
var
 lInt: Integer;
begin
 for Result := Low(C_10POWER) to High(C_10POWER) do
 begin
   if ( ANumber div C_10POWER[Result] ) = 0 then
     Break;
 end;
end;

нечто такое. зато работать будет имхо быстрее...


 
MetalFan ©   (2007-08-07 23:41) [7]


> Virgo_Style ©   (07.08.07 23:29) [5]

точно)))

uses Math;
...
function GetFigureCount( ANumber: Longword ): Integer;
var
 lInt: Integer;
begin
 Result := 1;
 if ANumber <=0 then Exit;
 Result := Trunc( Log10( ANumber ) ) + 1;
end;


 
Думкин ©   (2007-08-08 07:15) [8]

> if ANumber <=0 then Exit;

И что возвращаем? И у отрицательного числа нельзя посчитать число цифирь в записи? А если знак переобуть?


 
MetalFan ©   (2007-08-08 10:07) [9]


> Думкин ©   (08.08.07 07:15) [8]

ну да, ну да)
uses Math;
...
function GetFigureCount( ANumber: Longword ): Integer;
var
lInt: Integer;
begin
Result := 1;
if ANumber =0 then
  Exit
else
 ANumber := Abs( ANumber  );
Result := Trunc( Log10( ANumber ) ) + 1;
end;


 
Dimaxx ©   (2007-08-08 13:09) [10]


> А чем [0] отличается от [1] ???

Тем, что в [0] всегда будет возвращаться одно и тоже число.


 
DevilDevil ©   (2007-08-08 14:49) [11]

Longword = DWORD = Cardinal

вообще сравнивается на равенство нулю.
тестирование на минус явно лишнее.



Страницы: 1 вся ветка

Текущий архив: 2007.09.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
15-1186465107
@!!ex
2007-08-07 09:38
2007.09.02
telnet цвет текста.


1-1182360861
JanMihail
2007-06-20 21:34
2007.09.02
Как зарегить 5-ти значный ICQ


15-1186524930
Суслик
2007-08-08 02:15
2007.09.02
За что уважаю Led Zeppelin


2-1186414808
Салат
2007-08-06 19:40
2007.09.02
Data Pointer и все все все...


10-1136807222
yanker
2006-01-09 14:47
2007.09.02
управление через OLE