Dlaczego poniższy kod podnosi wyjątek pokazany poniżej? BigDecimal a = new BigDecimal("1.6"); BigDecimal b = new BigDecimal("9.2"); a.divide(b) // results in the following exception. Wyjątek: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
Muszę obliczyć niektóre zmienne zmiennoprzecinkowe, a mój kolega sugeruje, żebym użył BigDecimalzamiast tego, doubleponieważ będzie to bardziej precyzyjne. Ale chcę wiedzieć, co to jest i jak najlepiej wykorzystać BigDecimal?
Próbuję zaokrąglić wartości BigDecimal w górę, do dwóch miejsc po przecinku. używam BigDecimal rounded = value.round(new MathContext(2, RoundingMode.CEILING)); logger.trace("rounded {} to {}", value, rounded); ale nie robi tego, co chcę konsekwentnie: rounded 0.819 to 0.82 rounded 1.092 to 1.1 rounded 1.365 to 1.4 // should be 1.37 rounded 2.730 to …
Mam tę małą zwariowaną metodę, która konwertuje wartości BigDecimal na ładne i czytelne ciągi znaków. private String formatBigDecimal(BigDecimal bd){ DecimalFormat df = new DecimalFormat(); df.setMinimumFractionDigits(3); df.setMaximumFractionDigits(3); df.setMinimumIntegerDigits(1); df.setMaximumIntegerDigits(3); df.setGroupingSize(20); return df.format(bd); } Jednak generuje również tak zwany separator grupowania, ","który sprawia, że wszystkie moje wartości wyglądają następująco: xxx,xxx Potrzebuję separatora, …
Mam następujący kod w Javie; BigDecimal price; // assigned elsewhere if (price.compareTo(new BigDecimal("0.00")) == 0) { return true; } Jaki jest najlepszy sposób na napisanie warunku if?
Mam kolekcję BigDecimals (w tym przykładzie a LinkedList), którą chciałbym dodać. Czy można do tego wykorzystać strumienie? Zauważyłem, że Streamklasa ma kilka metod Stream::mapToInt Stream::mapToDouble Stream::mapToLong Z których każdy ma wygodną sum()metodę. Ale, jak wiemy, floati doublearytmetyka jest prawie zawsze zły pomysł. Czy jest więc wygodny sposób podsumowania BigDecimals? To …
Chcę zrobić kilka prostych sum z pewnymi wartościami walutowymi wyrażonymi BigDecimalczcionką. BigDecimal test = new BigDecimal(0); System.out.println(test); test.add(new BigDecimal(30)); System.out.println(test); test.add(new BigDecimal(45)); System.out.println(test); Oczywiście nie rozumiem dobrze BigDecimalarytmetyki, zobacz wyniki za. Test 0 0 0 Czy ktoś może mi pomóc?
Jaka jest różnica między tymi dwoma połączeniami? (Czy jest jakiś?) // 1. new BigDecimal("3.53456").round(new MathContext(4, RoundingMode.HALF_UP)); // 2. new BigDecimal("3.53456").setScale(4, RoundingMode.HALF_UP);
Mam metodę Hibernate, która zwraca mi BigDecimal. Mam inną metodę API, do której muszę przekazać ten numer, ale akceptuje ona liczbę całkowitą jako parametr. Nie mogę zmienić typów zwracanych ani typów zmiennych obu metod. Teraz jak przekonwertować BigDecimal na Integer i przekazać go do drugiej metody? Czy jest wyjście z …
Jak ustawić separator tysięcy w Javie? Mam reprezentację ciągu typu BigDecimal, którą chcę sformatować za pomocą separatora tysięcy i zwrócić jako ciąg.
Próbuję odczytać niektóre wartości BigDecimal z ciągu. Powiedzmy, że mam ten ciąg: „1,000,000,000.999999999999999” i chcę uzyskać z niego BigDecimal. Jak to zrobić? Przede wszystkim nie podobają mi się rozwiązania wykorzystujące zamiany ciągów znaków (zastępowanie przecinków itp.). Myślę, że powinien być jakiś zgrabny formater do wykonania tej pracy za mnie. Znalazłem …
Próbowałem przekonwertować wartość sekund (w zmiennej BigDecimal) na ciąg w editText, taki jak „1 godzina 22 minuty 33 sekundy” lub coś w tym rodzaju. Próbowałem tego: String sequenceCaptureTime = ""; BigDecimal roundThreeCalc = new BigDecimal("0"); BigDecimal hours = new BigDecimal("0"); BigDecimal myremainder = new BigDecimal("0"); BigDecimal minutes = new BigDecimal("0"); …
Mam BigDecimalpole amount, które reprezentuje pieniądze i muszę wydrukować swoją wartość w przeglądarce w takim formacie jak $123.00, $15.50, $0.33. Jak mogę to zrobić? (Tylko proste rozwiązanie, które widzę siebie robi floatValuez BigDecimal, a następnie używając NumberFormatdo dwucyfrowego precyzji dla części frakcji).
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.