Форум: "Основная";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
Внизкак выявить, что число не 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c