Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

Delphi bugs   Найти похожие ветки 

 
Saintdmitry ©   (2004-10-12 23:39) [0]

Недавно пришлось программировать на Delphi7(6) и вот, что обнаружил:

- нет сравнения real c константами и Extended
- не работает TDbComboBox

Что-то мне подсказывает, что это лишь малая часть, может кто сможет дополнить, было бы очень интересно услышать что меня ещё ждёт.


 
TUser ©   (2004-10-12 23:45) [1]


> Saintdmitry

Одит Великий Дима тут уже есть. Но изменеия уже заметны, что отрадно.

По сабжу - кода нет, ничего понять нельзя - чего не работает и как не сравнивается?


 
KSergey ©   (2004-10-13 07:14) [2]

Про какой-то ComboBox помнится было обсуждение - в D7 действительно имеется ошибка. Поправлена в сервиспаке.

Вот только о том ли речь?? Да и чтобы прям вот "совсем не работало"?? Что-то с трудом верится.


 
Saintdmitry ©   (2004-10-13 08:46) [3]

KSergey, а вы с ним работали?
Судя по исходным кодам он мало отличается от TComboBox.

TUser, вот пример:

E : Extended;
R : real;

E := 1.1;
R := 1.1;

E - R порядка 1.7 * exp(-17);
т.е. (E = R) - ложь


 
Fedia ©   (2004-10-13 08:56) [4]

Saintdmitry ©   (13.10.04 08:46) [3]
есть такая буква в этом слове :)
Скажу больше, даже в случае сравнения переменных одного типа (н-р Double), с одинаковыми значениями, могут возникать такие глюки, но это легко можно обойти: if abs(E-R)>0.000001 then. И таких глюков в Delphi немного, в процентах от первоклассно работающего стандартного кода.


 
Kolan ©   (2004-10-13 10:34) [5]

Так E : Extended;
R : real;

E := 1.1;
R := 1.1;

E - R порядка 1.7 * exp(-17);
т.е. (E = R) - ложь
может это из за представления чисел

Например
var
e:real;
begin
e:=0.1;
if e=0.1 then ...
else
...
так вот будет не равно из за того что intel работает только с 10-байтным типом Extended. И в e вместо 0.1 будет то что можно представить в виде конечной 2 дроби


 
Amoeba ©   (2004-10-13 11:07) [6]


> - нет сравнения real c константами и Extended

Так и должно быть. Дельфи здесь ни при чем, сие есть так сказать "закон природы". Читаем статью "Неочевидные ососбенности вещественных чисел" http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
до полного просветления.


 
TUser ©   (2004-10-13 11:12) [7]


> if abs(E-R)>0.000001 then. И таких глюков в Delphi немного

Это не глюк, а фича. Есть разница 10^-17, значит числа не равны. Другой вопрос, поечему такая разница появилась.


 
Amoeba ©   (2004-10-13 11:25) [8]


> Другой вопрос, поечему такая разница появилась.

Это фича, но не Delphi, а сопроцессора.
См. ссылку в Amoeba ©   (13.10.04 11:07) [6]


 
Saintdmitry ©   (2004-10-13 11:57) [9]

Приведите пример ещё языков. которые такой фичей страдают?
Мне на ум ничего не приходит.


 
Amoeba ©   (2004-10-13 12:02) [10]


> Saintdmitry ©   (13.10.04 11:57) [9]
> Приведите пример ещё языков. которые такой фичей страдают?
> Мне на ум ничего не приходит.

Языки здесь абсолютно ни при чем! Это ФИЧА НЕ ЯЗЫКА А ЖЕЛЕЗА! Еще раз настоятельно советую прочесть это http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374 и не страдать фигней.


 
KSergey ©   (2004-10-13 13:12) [11]

Этим страдают не языки, а авторы программ.

PS
На это я налетел в самой первой своей написанной проге на васике... но это уже другая история...


 
Anatoly Podgoretsky ©   (2004-10-13 13:26) [12]

Меня еще в первом классе учили, не надо сравнивать числа с плавающей запятой.


 
Плохиш ©   (2004-10-13 13:36) [13]


> Anatoly Podgoretsky ©   (13.10.04 13:26) [12]

Как за это время школа изменилась :-)


 
KSergey ©   (2004-10-13 14:27) [14]

> [12] Anatoly Podgoretsky ©   (13.10.04 13:26)
> Меня еще в первом классе учили, не надо сравнивать числа
> с плавающей запятой.

... на равенство
На неравенство - можно.



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

Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.037 c
14-1097289980
Думкин
2004-10-09 06:46
2004.10.31
С днем рождения! 9 октября


14-1097154874
Vlad Oshin
2004-10-07 17:14
2004.10.31
http://www.photosight.ru/pforum/printthread.php?Cat=&Board=photo_


3-1096613238
Гаврила
2004-10-01 10:47
2004.10.31
Константы в MSSQL


1-1097828005
_iceman_
2004-10-15 12:13
2004.10.31
Delphi виснет


3-1096898655
Loki3D
2004-10-04 18:04
2004.10.31
какие функции у PDOXUsers.lck





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