tag:minarik.net,2010:/proc-v-ruby-nefunguje-aritmetika/feedComments on „Proč v Ruby nefunguje aritmetika“ Jan Minárikminarik.net/proc-v-ruby-nefunguje-aritmetika.html2009-12-25T12:01:49Ztag:minarik.net,2010-04-03:/proc-v-ruby-nefunguje-aritmetika/comments/12616705742009-12-24T17:02:54Zaprilvzime said on 24|12|2009
Vazeny pane Minariku,
Vy si z nas delate tak trochu prdelky. To, ze v Americe slavi programatori Vanoce na Halloween, jeste neznamena, ze s Vami budeme v Cechach slavit April na Stedry den. Vzdyt si ten priklad spuste v te Jave jeste jednou....
Pokud pouzijete pro cislo 9.95 jako typ skutecne float, tedy...
System.out.println((int)(100 * 9.95f));
...pak je vysledek opravdu 995.
Chybny vysledek 994 zpusobi pouziti typu double. Ten je precejen vyvojove mladsi, a tim padem mene vychytanejsi, stejne tak jako Vami zminene jazyky PHP a Ruby... aprilvzimetag:minarik.net,2010-04-03:/proc-v-ruby-nefunguje-aritmetika/comments/12617389092009-12-25T12:01:49ZJan Minárik said on 25|12|2009
Zajímavé, a proč tedy System.out.println((int)(100 * 9.94f));
vrátí výsledek 993?
Jinak doporučuju si článek přečíst celý, dřív než budete komentovat. Nejde totiž o chybu, ale o vlastnost floating-point aritmetiky binárních počítačů. O nějaké vychytanosti či nevychytanosti tedy nemůže být řeč, a to bez ohledu na absurditu vašeho zdůvodnění :) Jan Minárikhttp://janminarik.cz