Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-2332
race1
2004-01-10 17:59
2004.02.02
будет ли флеш память под USB 2.0 работать на USB 1.1?


14-2357
klyonov
2004-01-13 10:41
2004.02.02
winamp


14-2288
Думкин
2004-01-12 06:32
2004.02.02
С днем рождения! 12 января.


11-2050
TimNew
2003-05-18 01:27
2004.02.02
как установить фокус


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





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