Главная страница
    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
1-2217
kiril-
2004-01-20 16:56
2004.02.02
OleVariant


14-2286
trotski
2004-01-13 06:55
2004.02.02
Нормирование данных


3-1952
Stas
2004-01-09 14:12
2004.02.02
MDAC и WIN98


1-2169
cypher
2004-01-20 17:47
2004.02.02
Глюки с отладкой в Д6


6-2259
h0use
2003-11-25 17:14
2004.02.02
Как реализовать чтоб сервре и клиент слушали порт?





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