Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
Цукор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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.043 c
2-1186590323
>>DEATH<<
2007-08-08 20:25
2007.09.02
Помогите с SelAttributes


15-1186068053
Kenifer
2007-08-02 19:20
2007.09.02
Как сделать чтоб программа сохраняла файл!


15-1186502485
Ivolg
2007-08-07 20:01
2007.09.02
Превести c C в Delphi


8-1164713466
Tar I
2006-11-28 14:31
2007.09.02
Вывод графики поверх видео


2-1186323790
JetAPI
2007-08-05 18:23
2007.09.02
TButton: Как одно событие, согласовать с другим событием?





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