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

Вниз

как проверить строку если это число, или нет?   Найти похожие ветки 

 
mike_yz ©   (2002-10-10 19:25) [0]

как проверить строку введённая пользователем приложения является ли она числом или нет?


 
Best Before 2024   (2002-10-10 19:28) [1]

см функции
StrToInt Def
FloatToStr Def


 
KaPaT ©   (2002-10-10 19:29) [2]

я обычно так делал....

n:=s.Length;
for i:=1 to n do
If not (s[i] in ["0".."9"] then <значит не число>

Дальше уж сам обработай если это самый оптимальный вариант...пусть выскажутся другие


 
.   (2002-10-10 19:30) [3]

я чтото слышал что обратные лупы быстрее работают это так?


 
Best Before 2024   (2002-10-10 19:32) [4]

2 KaPaT © (10.10.02 19:29)
А 12.34 - это что, не число? или 12,34


 
.   (2002-10-10 19:35) [5]

if not ( s[i] in ["0".."9", DecimalSeparator ) then


 
Best Before 2024   (2002-10-10 19:36) [6]

2 . (10.10.02 19:35)
А 12,,3,4 - Это тоже число :))


 
TTCustomDelphiMaster ©   (2002-10-10 19:37) [7]

try
floattostr
except
не число
end;


 
Best Before 2024   (2002-10-10 19:39) [8]

I := StrToIntDef(Str, <какое вряд ли можно ввести>)
if I = <какое вряд ли можно ввести> then не число

FloatToStrDef - аналогично

или TTCustomDelphiMaster © (10.10.02 19:37)
только
StrToFloat :))


 
TTCustomDelphiMaster ©   (2002-10-10 19:43) [9]

Ага


 
Best Before 2024   (2002-10-10 19:45) [10]


StrToFloatDef
Уже и сам запутался :(


 
yozhik ©   (2002-10-10 20:53) [11]

а если 12,3 и 12.3 - это одно и тоже, внезависимости от DecimalSeparator, только одно из "чисел" надо переконвертить ???
а как быть с 12, и с 012 - это число или нет ???
Есть решение для всех случаев, может не совсем правильное но рабочее:

function IsDigit(AVal: variant): boolean;
var sVal: string;
begin
sVal := Trim(String(AVal));
if (sVal="") or (sVal[1] in [".",",","0"]) or
(sVal[Length(sVal)] in [".",","]) then
begin
Result := False;
Exit;
end;
try
DecimalSeparator := ",";
StrToFloat(sVal);
Result := true
except
try
DecimalSeparator := ".";
StrToFloat(sVal);
Result := true
except
Result := False;
Exit;
end
end;
end;



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

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

Наверх




Память: 0.49 MB
Время: 0.019 c
4-69061
dumb
2002-09-06 00:13
2002.10.21
Аналог sleep


14-69015
Best Before 2024
2002-09-30 18:17
2002.10.21
Бланки, формуляры


1-68704
Jackson
2002-10-11 00:45
2002.10.21
Внимание: вопрос!!!


14-69025
Wonder
2002-09-30 12:54
2002.10.21
Гордитесь за свою страну ...


3-68658
Leviathan
2002-09-29 23:46
2002.10.21
IBDatabase.CreateDatabase