Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.044 c
11-1169117920
Mabia
2007-01-18 13:58
2007.09.02
Работа с файлами


2-1186811451
Kolan
2007-08-11 09:50
2007.09.02
Назначение свойства пириводит к уничтожению объекта


15-1186486501
@!!ex
2007-08-07 15:35
2007.09.02
Как скролить RichEdit


15-1186083986
hybride
2007-08-02 23:46
2007.09.02
Вопрос про удаленку


2-1186903551
brhrbr
2007-08-12 11:25
2007.09.02
Передача record по ссылке.




   Наверх