Java - prenost double

<<

Aries

Príspevky: 379

Registrovaný: Pia Jan 30, 2009 1:26 pm

Bydlisko: 127.0.0.1

Poslať Pon Sep 05, 2011 6:00 pm

Java - prenost double

Ked uz som sem zavital, spytam sa na "problem" s ktorym som sa prave stretol. Skusal som presnost double a nechapem celkom, ako sa vyhodnocuje. Mam kod:
  Kód:
long l = Long.MAX_VALUE;
double d = l;           
System.out.printf("%d %f\n",l,d);
System.out.println(l==d);
System.out.println(l==(long)d);


Vystup je:
  Kód:
9223372036854775807 9223372036854776000.000000
true
true


Cislo 9223372036854775807 sa zjavne nerovna 9223372036854776000.000000, preco sa teda l==d vyhodnoti ako true?
Vasnivy pestovatel binarnych stromov a opravar Turingovych strojov na polovicny uvazok.
"Problem citatov najdenych na internete je taky, ze si nikdy nemozete byt isti ich autenticitou" Abraham Lincoln
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Pon Sep 05, 2011 6:13 pm

Re: Java - prenost double

Dovod je ten, ze pri == sa uskutocni implicitne pretypovanie. Napr. pri l==d sa hodnota v l najprv pretypuje na double. T.j., kod je akoby:
double tmp = l
otestuj tmp==d.
Hodnota v d vsak vznikne rovnako implicitnym pretypovanim long-u l na double. A preto hodnota v d aj tmp su rovnake (rovnake pretypovanie tej istej hodnoty da rovnaky vysledok).
<<

Aries

Príspevky: 379

Registrovaný: Pia Jan 30, 2009 1:26 pm

Bydlisko: 127.0.0.1

Poslať Pon Sep 05, 2011 6:28 pm

Re: Java - prenost double

Aha, tak o pretypovani aj pri porovnavani som nevedel... Dakujem za rozsirenie numerickych obzorov :)
Vasnivy pestovatel binarnych stromov a opravar Turingovych strojov na polovicny uvazok.
"Problem citatov najdenych na internete je taky, ze si nikdy nemozete byt isti ich autenticitou" Abraham Lincoln
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Uto Sep 06, 2011 5:28 pm

Re: Java - prenost double

Aries píše:Aha, tak o pretypovani aj pri porovnavani som nevedel... Dakujem za rozsirenie numerickych obzorov :)


To je niekoho chyba. Take veci by sa mali podla mna povinne brat. Uplne standartna vec (chyba)
<<

Aries

Príspevky: 379

Registrovaný: Pia Jan 30, 2009 1:26 pm

Bydlisko: 127.0.0.1

Poslať Uto Sep 06, 2011 6:00 pm

Re: Java - prenost double

Teraz sa ma brat kazda jedna drobnost a zaludnost kazdeho jazyka s ktorym sa student stretne? Zaradime do povinnych materialov aj toto? Ved sa pise ze by to mal vediet kazdy kompijuter sajentist... Tych roznych vychytaviek, pitfallov a podobne je neskutocne vela, vsetko sa obsiahnut neda. A nakoniec... mozno sa aj toto pretypovanie spominalo, len si na to proste nepamatam, alebo som vtedy ani nebol na prednaske/cviceni (na PAZ1a som prilis nechodil :)) Beriem to skor svoju osobnu nevedmost ako chybu skoly... Viem ze o presnosti double rec na PAZ bola, spominalo sa aj klasicke x+=0.1 a podobne.
Vasnivy pestovatel binarnych stromov a opravar Turingovych strojov na polovicny uvazok.
"Problem citatov najdenych na internete je taky, ze si nikdy nemozete byt isti ich autenticitou" Abraham Lincoln
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Uto Sep 06, 2011 7:57 pm

Re: Java - prenost double

Kamo.. implicitna konverzia je mozno aj v kazdom jazyku, s akym si sa stretol. Nie je to nic vynimocne, ziaden pitfall, nic. Pokial si nevezmes silno typovany jazyk ako napr. Haskell kde Ta kompilator ani interpreter nepusti tak mas vsade. Predpokladam, ze poznas mainstreamove jazyky. O PHP ani nehovoriac...

Ty nejdes proti tomu, co ja vravim. Ty asi len rad ides proti mne.. To je elementarna vec. Len asi ked ja nieco poviem, ze je elementarna vec, tak si myslis ze je super utlra mega trooper vynimka a chytak.. Ako pokial Ta implicitna konverzacia nenapadla hned pripadne po kratkom debugu nevies kde je chyba, tak je niekde chyba. Ale hej, zasa z Prahy prisel mudrovat.. Prizemne rozmyslanie..

Chces povedat, ze si ani o zakruohlovacich chybach nevedel? Sustred sa na myslienky a nie na mna.
<<

Aries

Príspevky: 379

Registrovaný: Pia Jan 30, 2009 1:26 pm

Bydlisko: 127.0.0.1

Poslať Uto Sep 06, 2011 8:20 pm

Re: Java - prenost double

Ty sa sustred na to, aby si okrem lamentovania nad tym, ako je vsetko zle a nic nikoho neucia a nikto nic nevie aj vnimal co pisu ostatni a nedomyslal si cele myslienkove konstrukcie.
Pojdem pekne po poradi:
- ano kamo, viem co je implicitna konverzia, a je mi jasne ze sa musi uplatnovat a ako k tomu dochadza... Ze mi nedoslo ze sa uplatni aj v tomto pripade, je moj osobny fail. Ono to aj logicky vyplyva z toho co som uz vedel, len jednoducho ked som videl v stdout-e vypisanu hodnotu doublu a nasledne longu, moj sedliacky rozum prevazil nad (v tomto pripade) spravnejsim uvazovanim
- nie som genius a je miliarda veci ktore neviem, ale zas za uplneho blbca sa zas nepokladam (mozno aj neopravenene :)). Ale ked zacnes robit dramu v kazdej diskusii, chytas sa kazdej zmienky o comkolvek, neda mi nereagovat. Viem ze sa vravi ze trollov netreba krmit, ale co uz... ked som sam jeden z nich. A este mam rad aj flamovanie, nadavanie ostatnym a sunkovu pizzu.
- ze si paranoidny este neznamena, ze ta nesleduju. Mam o tebe celu zlozku v mojom tajnom priecnku.
- bohuzial nas na nasich vychodnych univerzitach v odlahlych castiach zemegule este len ucia pisat a nedosahujeme ani zdaleka uroven zapadnej civilizacie, takze case elementarne veci su megachytaky. Ale snazime sa, uz mame hlinene dosticky.
- priznavam sa ze som prizemny, len necely meter osemdesiat nad podlahou
- kamo, fakt citas co pisem alebo nie? Kde som napisal ze som o zaokruhlovacich chybach nevedel? :o

Hmm, keby som bol admin/moderator, asi si dam uz ban... Ale ked ja flejmik tak rad a uz mi aj zacinala byt zima...
Vasnivy pestovatel binarnych stromov a opravar Turingovych strojov na polovicny uvazok.
"Problem citatov najdenych na internete je taky, ze si nikdy nemozete byt isti ich autenticitou" Abraham Lincoln
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Uto Sep 06, 2011 8:27 pm

Re: Java - prenost double

Aries píše:Ty sa sustred na to, aby si okrem lamentovania nad tym, ako je vsetko zle a nic nikoho neucia a nikto nic nevie aj vnimal co pisu ostatni a nedomyslal si cele myslienkove konstrukcie.
Pojdem pekne po poradi:
- ano kamo, viem co je implicitna konverzia, a je mi jasne ze sa musi uplatnovat a ako k tomu dochadza... Ze mi nedoslo ze sa uplatni aj v tomto pripade, je moj osobny fail. Ono to aj logicky vyplyva z toho co som uz vedel, len jednoducho ked som videl v stdout-e vypisanu hodnotu doublu a nasledne longu, moj sedliacky rozum prevazil nad (v tomto pripade) spravnejsim uvazovanim
- nie som genius a je miliarda veci ktore neviem, ale zas za uplneho blbca sa zas nepokladam (mozno aj neopravenene :)). Ale ked zacnes robit dramu v kazdej diskusii, chytas sa kazdej zmienky o comkolvek, neda mi nereagovat. Viem ze sa vravi ze trollov netreba krmit, ale co uz... ked som sam jeden z nich. A este mam rad aj flamovanie, nadavanie ostatnym a sunkovu pizzu.
- ze si paranoidny este neznamena, ze ta nesleduju. Mam o tebe celu zlozku v mojom tajnom priecnku.
- bohuzial nas na nasich vychodnych univerzitach v odlahlych castiach zemegule este len ucia pisat a nedosahujeme ani zdaleka uroven zapadnej civilizacie, takze case elementarne veci su megachytaky. Ale snazime sa, uz mame hlinene dosticky.
- priznavam sa ze som prizemny, len necely meter osemdesiat nad podlahou
- kamo, fakt citas co pisem alebo nie? Kde som napisal ze som o zaokruhlovacich chybach nevedel? :o

Hmm, keby som bol admin/moderator, asi si dam uz ban... Ale ked ja flejmik tak rad a uz mi aj zacinala byt zima...


Hadam Ti je uz lepsie :)
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Uto Sep 06, 2011 8:29 pm

Re: Java - prenost double

Ale však ochabte, no!
Lorem ipsum dolor sit amet.
<<

Aries

Príspevky: 379

Registrovaný: Pia Jan 30, 2009 1:26 pm

Bydlisko: 127.0.0.1

Poslať Uto Sep 06, 2011 8:39 pm

Re: Java - prenost double

Ale ked mi bola zima, no. No nastastie mi je uz lepsie, srdiecko sa mi ohrialo a az do vsetkych konctain to preslo, no veru prekrasny pocit. Sem budem chodit castejsie, mili kolegovia.
Vasnivy pestovatel binarnych stromov a opravar Turingovych strojov na polovicny uvazok.
"Problem citatov najdenych na internete je taky, ze si nikdy nemozete byt isti ich autenticitou" Abraham Lincoln
<<

dabrock

Príspevky: 16

Registrovaný: Str Okt 13, 2010 5:21 pm

Poslať Uto Sep 06, 2011 8:43 pm

Re: Java - prenost double

Milý guest!

Aries:"Aha, tak o pretypovani aj pri porovnavani som nevedel..."
Guest:"To je niekoho chyba. Take veci by sa mali podla mna povinne brat."

To že to nevedel, neznamená, že sa to nebralo. V svojej reakcii ti to Aries aj vysvetlil - na čo si už nijako nereagoval.
Vieš, teraz si všetci myslíme, že si nejako chybne vydedukoval, že Aries to nevie preto, že sa to nebralo.

Podobne Aries povedal, že "tak o pretypovani AJ pri porovnavani som nevedel...". Zdôrazňujem slovíčko AJ.
Ty si napísal:
"Kamo.. implicitna konverzia je mozno aj v kazdom jazyku, s akym si sa stretol. Nie je to nic vynimocne, ziaden pitfall, nic."
Ale moment, Aries nehovorí že by o implicitnej konverzii ako takej nevedel - nevedel len o tom, že sa aplikuje aj pri porovnávaní.
Toto podkladá aj ďalším svojím vyjadrením: "mozno sa AJ TOTO pretypovanie spominalo". Z čoho možno usudzovať, že iné pretypovania, alebo pretypovanie obecne sa spomínalo. Opäť bez tvojej reakcie.

Ďalej si napísal:
"Ty nejdes proti tomu, co ja vravim. Ty asi len rad ides proti mne.. To je elementarna vec. Len asi ked ja nieco poviem, ze je elementarna vec, tak si myslis ze je super utlra mega trooper vynimka a chytak.. Ako pokial Ta implicitna konverzacia nenapadla hned pripadne po kratkom debugu nevies kde je chyba, tak je niekde chyba. Ale hej, zasa z Prahy prisel mudrovat.. Prizemne rozmyslanie.."
V tejto časti svojej reakcie najprv predpokladáš, že Aries si potrebuje krátiť čas "idením proti tebe" - prečo si to myslíš? Prečo zveličuješ? Prečo ten urážlivý tón? Kto tu spomínal Prahu? WTF?
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Uto Sep 06, 2011 8:51 pm

Re: Java - prenost double

Aries píše:Teraz sa ma brat kazda jedna drobnost a zaludnost kazdeho jazyka s ktorym sa student stretne? Zaradime do povinnych materialov aj toto? Ved sa pise ze by to mal vediet kazdy kompijuter sajentist... Tych roznych vychytaviek, pitfallov a podobne je neskutocne vela, vsetko sa obsiahnut neda. A nakoniec... mozno sa aj toto pretypovanie spominalo, len si na to proste nepamatam, alebo som vtedy ani nebol na prednaske/cviceni (na PAZ1a som prilis nechodil :)) Beriem to skor svoju osobnu nevedmost ako chybu skoly... Viem ze o presnosti double rec na PAZ bola, spominalo sa aj klasicke x+=0.1 a podobne.


Je to Ariesov osobny fail. Dalej ide o informaticku schopnost hladat chyby, riesenie. Ako by zistil, kde je chyba, keby mi to FeroG nepovedal? A nech sa divam ako sa divam, v citovanej reakcii som vazne nevycital, ze sorry, moj osobny fail :) Asi uz nemam co viac povedat aby som sa neopakoval :)

Ale po tych Ariesovych prispevkoch.. asi budem jeho preskakovat, lebo nejak neviem vyjst z toho, o co mu ide. Co je mozno moja chyba, ale to nie je dolezite a setri to cas :)

Ochabim.
<<

PainMaster

Príspevky: 689

Registrovaný: Uto Okt 06, 2009 12:50 pm

Bydlisko: 3.Kanal,4.Chodba

Poslať Str Sep 07, 2011 8:25 am

Re: Java - prenost double

Uplne som sa rozculil teraz.. taketo duchanepritomne posty su pricinou toho, ze ludia forum nevyuzivaju!
Ak potrebuje niekto pomoc, tak to napise na forum... nech sa jedna o cokolvek, nikto by mu nemal zakazat opytat sa. No ked vidim "ludi" , ktori poradit nevedia (dovod nemusi byt vedomostny nedostatok), ale vedia hucat "toto sme sa ucili. toto by ste sa ucit mali..".. nenapomocne, kontraproduktivne flamovanie zvacsa zakomplexovanych jedincov...
A preto by som rad takychto jedincov poprosil: "Ak to nikomu nepomoze tak nepis..."
Dakujem.
PM.
We weren't born to follow
You gotta stand up for what you believe!

Ps: Za gramatiku ma neopravovat! Dakujem!
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Str Sep 07, 2011 10:44 am

Re: Java - prenost double

Hej, na akokolvek inom (neskolskom) fore. Potom je otazka, naco co je skola, ked sa nedaju garantovat ani take elementarne vedomosti.. Skola by mala predsa garantovat nejake elementarne vedomosti. Alebo je ten diplom dobry aj na nieco ine?
<<

bwpow

Príspevky: 634

Registrovaný: Str Nov 22, 2006 11:19 am

Bydlisko: Košice

Poslať Str Sep 07, 2011 11:04 am

Re: Java - prenost double

Najvacsi osobny fail je predpokladat, ze niekto bude garantovat cokolvek za niekoho ineho.
Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
Ďalší

Späť na Poradňa

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software.
Slovenský preklad.