Problem z operacjami na double'ach

0

Witam, mam taki problem, przy odejmowaniu liczb 2.928306580874433E31 - 0.3524620387001529 wychodzi 2.928306580874433E31. Czemu sie tak dzieje? Co z tym zrobić?

0

Nic, przyjąć to wiadomości i się z tym pogodzić.

0

Wyobraź sobie, że jesteś właścicielem plaży i oszacowałeś, że z dużą dokładnością jest na niej 6 tryliardów ziarenek piasku. Jak ktoś Ci podpieprzy 3 ziarenka, to nadal będziesz miał 6 tryliardów ziarenek. Problem się pojawia, gdy ktoś podpieprzy Ci 3 ziarenka 100 trylionów razy, wtedy twoje oszacowanie ilości ziarenek ma o wiele mniejszą dokładność.

0

No to co ja mam zrobić? Mam zadanie na metody numeryczne i nie zrobię tego przez double'a?

0

Jeżeli dla Twojego algorytmu istotna jest dokładna wartość różnicy 2.928306580874433E31 - 0.3524620387001529, to coś jest nie tak z algorytmem.

0

Jeżeli wychodzą problemy natury numerycznej to spróbuj zmienić algorytm (głównie jak najbardziej wyeliminować odejmowanie liczb o zbliżonej wielkości).

0

Tak jest to super istotne. Przy mnożeniu liczb 3.6835986447807926E43 i 9.202506473580127E304 wychodzi Infinity i wszystko się sypie...

0

Jak musisz działać na tak dużych liczbach, to zmień typ na BigDecimal.

0

@John ty masz te metody numeryczne na studiach i nie wiesz że double ma ograniczony zakres i dokładność? To ty chyba spałeś na zajęciach z tego przedmiotu...

1 użytkowników online, w tym zalogowanych: 0, gości: 1