Zashto (float)5 - (float)5.9 = -0,9000001
12 отговора
668 прегледа
Re: Zashto (float)5 - (float)5.9 = -0,9000001
щот като се превръща в 2-чна система и се получава грешка
по-конкретно 5.9 няма точно представяне с FP...
Сигнатура!
по-конкретно 5.9 няма точно представяне с FP...
Сигнатура!
Редактирано от Questor на
Re: Zashto (float)5 - (float)5.9 = -0,9000001
decimal result = (decimal)5 - (decimal)5.9;
?
?
Re: Zashto (float)5 - (float)5.9 = -0,9000001
Прочети тук:
[линк]
Много хубаво е обяснено. Даже прокалено хубаво.
Боже колко мъка има на този свят Боже!



[линк]
Много хубаво е обяснено. Даже прокалено хубаво.
Боже колко мъка има на този свят Боже!
Re: Zashto (float)5 - (float)5.9 = -0,9000001
Манете ги тия дроби миризливи бре.
Те са коренът на всяко зло.
Re: Zashto (float)5 - (float)5.9 = -0,9000001
ако ми трябват числа с до 4 знака след запетаята, в Делфи използвам Currency. За такива числа съвсем спокойно могат да се използват интеджерчета с дръпнати няколко знака.
За този проблем разбрах от една Excel-ска таблица, когато при рекапитулацияута се почучи неравнение, а като видях резултата...0.000000003454 нещо такова... И от тогава използвам Currency.
За този проблем разбрах от една Excel-ска таблица, когато при рекапитулацияута се почучи неравнение, а като видях резултата...0.000000003454 нещо такова... И от тогава използвам Currency.
Re: Zashto (float)5 - (float)5.9 = -0,9000001
mi tyj de, ne trqbwa da se izpolzwat neshta, koito ne se znaqt, pyk i sa mnogo slojni, a i koj mu se uchi izobshto!?!? az toq post, naprimer, sys logaritmichnata linijka go pusnah...... ama shte minawam na smetalo de, che sa mnogo slojni tiq pushtini....
Re: Zashto (float)5 - (float)5.9 = -0,9000001
Като стана дума за учене - ми това за double/float числата се учи и във ФМИ и във ТУ... - не е да кажеш някакво top-secret. така че не знам дали толкова ни е криво УбразУванието или УбразУващите се....
Сигнатура!
Сигнатура!
Защото...
Типът float гарантира 6 десетични цифри точност.
Т.е. имаш гаранция за операцията
5.00 000X - 0.900 000
Резултатът също е старшите 6 цифри от предната сметка.
За double се гарантират 15 цифри. Демек там няма как да получиш грешка в цялата част. Но при float може, затова като подаваш float за int дава warning.
Ако изкараш резултата от същата сметка в double с повече от 15 значещи цифри пак ще има разлика.
Изобщо числата които имат добро представяне в една бройна система понякога са доста къдрави в друга и пресмятането им в нея няма как да не води до грешки. Също като числата 1/3, 2/3 в десетична систма, които в троична изглеждат съвсем прилично.
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Т.е. имаш гаранция за операцията
5.00 000X - 0.900 000
Резултатът също е старшите 6 цифри от предната сметка.
За double се гарантират 15 цифри. Демек там няма как да получиш грешка в цялата част. Но при float може, затова като подаваш float за int дава warning.
Ако изкараш резултата от същата сметка в double с повече от 15 значещи цифри пак ще има разлика.
Изобщо числата които имат добро представяне в една бройна система понякога са доста къдрави в друга и пресмятането им в нея няма как да не води до грешки. Също като числата 1/3, 2/3 в десетична систма, които в троична изглеждат съвсем прилично.
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Re: Zashto (float)5 - (float)5.9 = -0,9000001
Напротив, смятането с използване на целочислени типове с читав контрол на точността е по-сложно от смятането с float-и & double-и. Та за това са и измислени.
Re: не бяха ли евреите?
Майната им на евреите и на световния империализъм.
Тъкмо почна по ОРТ филмче за Хрущев и неговата "Кузькина мать". 
Re: Zashto (float)5 - (float)5.9 = -0,9000001
Mah baamu !!
Shto reshi che vsichki tuk za BOGOPOMAZANI of svetlata sila na FMI ili TU ...az sam prosto lekar (ako predpochitash - prost lekar ) ....za tova koe mi e krivo i koe ne ...znayat samo nyakolko gadjeta i jena mi ;) !
Na ostanalite ...ISKRENO mersi za otgovorite :)
Shto reshi che vsichki tuk za BOGOPOMAZANI of svetlata sila na FMI ili TU ...az sam prosto lekar (ako predpochitash - prost lekar ) ....za tova koe mi e krivo i koe ne ...znayat samo nyakolko gadjeta i jena mi ;) !
Na ostanalite ...ISKRENO mersi za otgovorite :)