Kalkulačka nepresnosť – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Kalkulačka nepresnosť – Java – Fórum – Programujte.comKalkulačka nepresnosť – Java – Fórum – Programujte.com

 

Lukas
~ Anonymní uživatel
301 příspěvků
7. 5. 2015   #1
-
0
-

Zdravím robím kalkulačku v jave a mam taký problém keď mam sinus a cosinus tak nieje presná. Vyhodí mi iny vysledok ako kalkulacka v PC viete mi poradiť ako to spravím aby mi hádzala presný vysledok ? (robim v programe netbeans) Ďakujem. :-)

Nahlásit jako SPAM
IP: 193.87.172.–
Petr
~ Anonymní uživatel
746 příspěvků
7. 5. 2015   #2
-
0
-

Ahoj,

bez toho aniz tady alespon das tvuj java kod ti asi tezko nekdo rekne kde je presne problem.

Nicmene u vypoctu hodnot techto funkci mohou vysledek ovlivnit 2 dulezite faktory:
- numericka metoda pouzita k vypoctu hodnoty dane funkce.
- presnost (pocet bajtu / delka mantisy) promennych, ktere se pouzivaji k vypoctu (vcetne vysledku) a s tim spojena zaokrouhlovaci chyba

Trochu se to pokusim vysvetlit:

K vypoctu hodnot ruznych matematickych rad, funkci apod. se pouzivaji numericke metody. Pro jednu funkci muze existovat vice ruznych metod, ktere se lisi v rychlosti, presnosti, pripadne definicnim oboru (kdyz je to mimo tak algoritmus ztraci presnost, nebo zcela nefunguje atd.). Z toho tedy plyne ze pokud dva programy pouziji jinou metodu pro vypocet stejne funkce tak se muze vysledek mirne lisit.

Dale tam hraje roli presnost cisel. Vetsina numerickych metod zahrnuje desitky nebo klidne i tisice aritmetickych operaci jako napr. nasobeni a deleni. Cisla v pocitaci jsou ulozena s konecnou presnosti, ktera je dana velikosti pameti, ktera je pro cislo vyhrazena. Napriklad pokud budu delit 1 / 6 tak vysledkem je 0,16666666... ale kdyz to zadas do kalkulacky, tak ti vypadne 0,166666667, protoze vysledek ma omezenou presnost a dojde k zaokrouhleni. Cim vetsi ma vysledek presnost, tim dale bude 7 ve vysledku, ale vzdy tam bude (pokud tedy algoritmus neni schopen pracovat se zlomky, coz by u numerickych metod bylo ponekud komplikovane). 
Pokud se takto zaokrouhleny vysledek pouzije jako vstup jine aritmeticke operace , ktera opet skonci nejakym zaokrouhlenim, tak se ti tam zacne skladat zaokrouhlovaci chyba. Velikost chyby bude zalezet na poctu operaci, typu operaci a presnosti cisel, ktere byly pouzity.

Nahlásit jako SPAM
IP: 83.240.112.–
NotBeginner
~ Anonymní uživatel
185 příspěvků
7. 5. 2015   #3
-
0
-

 #2 Petr

Nezvěřejnil jej proto, že je neskutečně kvalitní a tajný a to je ten důvod. Chrání si know-how ~      ~

2Lukas: Příště si prostuduj API, je nutno zadat vstup v radiánech. - na kalkulačce je nutno nastavit na RAD a už ti to bude sedět.

http://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#sin-double- 

Nahlásit jako SPAM
IP: 217.112.161.–
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, 6 hostů

Podobná vlákna

Kalkulačka — založil Lukáš

Kalkulacka — založil mravenec

Kalkulacka — založil pawkin

Kalkulačka — založil Anakin

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ý