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

Вниз

как выявить, что число не real?   Найти похожие ветки 

 
Zheks ©   (2004-01-19 16:27) [0]

помогите разобраться, мне нужно перевести предположим строку ".00345" в real(0.00345), но может попасться число 3.34566, тогда простым прибавлением нуля не обойтись. Т.Е. нужно что то типа:
if "число " = real then ...(3.00345)
else "0" + .00345


 
WondeRu ©   (2004-01-19 16:38) [1]

if trunc(число) <> 0 then


 
Ega23 ©   (2004-01-19 16:39) [2]


> WondeRu © (19.01.04 16:38) [1]
> if trunc(число) <> 0 then

Неправда.
if (Trunc(число)-число)<>0 then ...


 
WondeRu ©   (2004-01-19 16:41) [3]

if str[1]= "." then a := strtofloat(str1)
else a := strtofloat("0" + str1);


 
Ega23 ©   (2004-01-19 16:43) [4]


> помогите разобраться, мне нужно перевести предположим строку
> ".00345" в real(0.00345), но может попасться число 3.34566,
> тогда простым прибавлением нуля не обойтись. Т.Е. нужно
> что то типа:
> if "число " = real then ...(3.00345)
> else "0" + .00345

Я так понимаю, тебе анализ вводимой строки нужно делать.


 
Stas ©   (2004-01-19 16:46) [5]

А ЕСЛИ ПОПАЛАСЬ БУКВА ?
Лучше tryStrtofloat


 
Ega23 ©   (2004-01-19 16:46) [6]

И, кстати, число может быть 3.0. Тогда Trunc(3.0)-3.0 будет 0

> Zheks © (19.01.04 16:27)

Сформулируй задачу точнее.


 
WondeRu ©   (2004-01-19 16:46) [7]

Неправда.
прогнал! всю ночь просто пил, утром не позавтракал, теперь кушать дико охота!))


 
Ega23 ©   (2004-01-19 16:47) [8]


> Stas © (19.01.04 16:46) [5]

Лучше Val, ИМХО. В соседней ветке как раз дисскуссия идёт.


 
AKul ©   (2004-01-19 16:49) [9]

Используй StrToFloat. Она "понимает" и ".01", главное чтобы разделитель десятичной и дробной части совпадал с переменной DecimalSeparetor.
P.S. "0"+"3.445" = "03.445", а разве это не вещественное число?


 
AKul ©   (2004-01-19 16:52) [10]

Sorry, описАлся (DecimalSeparetor) надо - DecimalSeparator


 
WondeRu ©   (2004-01-19 16:52) [11]

>главное чтобы разделитель десятичной и дробной части совпадал с >переменной DecimalSeparetor.

я так делаю:

function StrToReal(str1: String): Real;
var
i: Byte;
begin
str1 := Trim(str1);
i := pos(".", str1);
if i <> 0 then str1[i] := ",";
Result := StrToFloat(str1);
end;


 
AKul ©   (2004-01-19 17:01) [12]


> я так делаю:

Это только в том случае, если в DecimalSeparator находится ","!!!
(А это все зависит от настроек)
P.S.: Делать можно как угодно, но не всегда сделанное будет работать.


 
Ega23 ©   (2004-01-19 17:06) [13]

Не, вопрос-то интересный: "Как выявить, что число не Real"?


 
WondeRu ©   (2004-01-19 17:13) [14]

>Делать можно как угодно, но не всегда сделанное будет работать
согласен!

>Не, вопрос-то интересный: "Как выявить, что число не Real"?
сформулируем по другому: "Как выявить, что число Unreal"?


 
Anatoly Podgoretsky ©   (2004-01-19 17:26) [15]

Оба указаных числа Real



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

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

Наверх




Память: 0.49 MB
Время: 0.019 c
14-2321
Teren
2004-01-09 00:15
2004.02.02
Любимые фильмы


1-2102
Grugan
2004-01-21 20:34
2004.02.02
Microsoft Outlook


4-2405
Вадим
2003-11-25 21:13
2004.02.02
Ничего не понимаю! Помогите разобраться.


14-2284
TankMan
2004-01-11 11:39
2004.02.02
Возможно ли


4-2431
User_OKA
2003-11-24 10:25
2004.02.02
Реестр