Test preteceni Doublu – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Test preteceni Doublu – Java – Fórum – Programujte.comTest preteceni Doublu – Java – Fórum – Programujte.com

 

Janous
~ Anonymní uživatel
1 příspěvek
31. 3. 2017   #1
-
0
-

Zdravim,

jsem v jave novy a potreboval bych poradit jak osetrit preteceni doublu pri scitani a odcitani v kladnych i zapornych hodnotach. neco jako Double.MAX_VALUE + NECO = overflow && -Double.MAX_VALUE - NECO = overflow.

Diky moc

Nahlásit jako SPAM
IP: 2a00:1028:96c9:6936:51e9:...–
Kit+15
Guru
1. 4. 2017   #2
-
0
-

#1 Janous
Nechápu, jak někomu může přetéct double. Měl bys nějaký příklad z fyziky, například počet fotonů ve Vesmíru a tak?

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:b07a:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Ovrscout
~ Anonymní uživatel
113 příspěvků
1. 4. 2017   #3
-
+1
-
Zajímavé
Kit +

#1 Janous

No, mně to přijde jako když si motáš běžné celočíselné výpočty a výpočty v IIE754, takhle to tam nefunguje.
Nějaký popis pro iee754 např zde: https://en.wikipedia.org/…oating_point a zde https://cs.wikipedia.org/wiki/IEEE_754 (doporučuji pročíst hlavně EN verzi)

Pro defaultní nastavení by měl být výsledek "přetečení" hodnota "infinity". Takaže v javě by mělo stačit zkontrolovat výsledek pomocí Double.isInfinity nebo tak nějak.

Jak ale psal Kit, tak ve většině běžných případů se k tomuto nedopočítáš.

Nicméně double (a další bninary decimal čísla iee754) trpí i jinými vlastnostmi, které mohou leckoho překvapit. Např:
- double má opravdu hooodně velký rozsah, ale jen omezenou "přesnost" - počet platných dec míst je jen kolem15. (což už se dá překročit, např při průběžném přičítání malých čísel k jednomu velkému)
- neschopnost opravdu přesně reprezentovat některá dekadická desetinná místa (např 1.1 je ve skutečnosti uloženo jako cca 1.10000000000000008881784197001 atp.)

Asi by bylo dobré popsat jak a co se snažíš počítat, kolik máš vstupních čísel, s jakou přesností, atp... .
A pak se dá poradit, jakým směrem se dát.

Kromně jiného ještě upozorním na hodnotu NaN která se také múže objevit jak třeba výsledek (0.0/0.0)
 

Nahlásit jako SPAM
IP: 92.62.237.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 19 hostů

Podobná vlákna

Kontrola přetečení — založil Keyzio

Test — založil Zdeny

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý