• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyświetlanie dużych liczb

0 głosów
770 wizyt
pytanie zadane 8 września 2021 w Java przez Mateusz85 Początkujący (370 p.)
Witam,

Jak wyświetlić naprawdę dużą liczbę zmiennoprzecinkową w Javie?

2 odpowiedzi

0 głosów
odpowiedź 8 września 2021 przez Wiciorny Ekspert (282,600 p.)
Zależy jak dużych, najlepiej zrobić to z pomocą klasy-wrapera.
Np. dla liczb float, znajdz BigFloat klase

https://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Number.html
0 głosów
odpowiedź 8 września 2021 przez SebbaGamess Użytkownik (690 p.)

Jeżeli chcesz przechowywać naprawdę duże liczby lub mieć możliwość liczenia na liczbach bez błędu (np. błąd 0.1 + 0.2 = 0.30000000000000004) to powinieneś użyć klasy BigDecimal.
Dokumentacja: Tutaj

Nowy obiekt tworzysz za pomocą funkcji valueOf (jeżeli liczba jest mała - long/double)

BigDecimal decimal = BigDecimal.valueOf(1234);

Albo za pomocą konstruktora, gdy jest na prawdę duża (podajesz ją jako String):

BigDecimal decimal = new BigDecimal("245.343546567457563452345");

BigDecimal powstał po to, by przechowywać duże liczby oraz posiada dużo metod, dzięki którym można te liczby wykorzystywać w obliczeniach. (plus(), substact(), multiply(), divide() itd.) Jednak trzeba pamiętać o tym, że jako klasa zajmuje więcej miejsca niż zwykła liczba.

komentarz 8 września 2021 przez Wiciorny Ekspert (282,600 p.)

zależy. czy koledze zależy na precyzji.
Bo Liczby dziesiętne są przybliżeniami, więc pełnej precyzji z BigDecimal się nie osiągnie podczas aproksymacji 

Da się to  obejść, ale trzeba założyć tzw MathContext.UNLIMITED - dla klasy 

komentarz 8 września 2021 przez SebbaGamess Użytkownik (690 p.)
Sam nie znam lepszej klasy w API Javy, która lepiej operuje na liczbach (chociaż też nie wiem wszystkiego). Są jakieś bardziej precyzyjne klasy?
komentarz 8 września 2021 przez Wiciorny Ekspert (282,600 p.)
tzn, zależy czy obliczeniowo czy długościowo.
BO dedykowane klasy Float/Double dla BigDouble i BigFloat, zawsze dla tych typów będa miały lepszą precyzje matematyczną .. tylko z ograniczeniem co do wielkości liczby.
Natomiast BigDecimal z uzyciem MathContext, jednak jest najlepszym rozwiązaniem.
komentarz 8 września 2021 przez SebbaGamess Użytkownik (690 p.)
Nie znalazłem nigdzie w API Javy klas BigDouble/BigFloat. Możesz mi wysłać link do ich dokumentacji?

Podobne pytania

0 głosów
0 odpowiedzi 197 wizyt
pytanie zadane 23 listopada 2020 w Nasze projekty przez overcq Pasjonat (22,630 p.)
0 głosów
1 odpowiedź 1,255 wizyt
pytanie zadane 21 listopada 2020 w C i C++ przez Hardwell Dyskutant (9,060 p.)
0 głosów
1 odpowiedź 382 wizyt
pytanie zadane 18 listopada 2020 w C i C++ przez Marak123 Stary wyjadacz (11,190 p.)

93,632 zapytań

142,556 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...