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

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



Память: 0.47 MB
Время: 0.016 c
14-2366
ИМХО
2004-01-01 12:21
2004.02.02
USA: как живешь, Америка?


3-2047
Evyshka
2004-01-05 16:50
2004.02.02
Связь кнопки с гридом


1-2216
TTT
2004-01-20 17:26
2004.02.02
fsMDIForm с компонентами BitBtn


1-2123
PutRsa
2004-01-19 17:12
2004.02.02
Вычисления над сверхбольшими числами


1-2218
IgorK
2004-01-20 17:04
2004.02.02
Сообщение при двойном клике на заголовке окна




   Наверх