Warum löst der folgende Code die unten gezeigte Ausnahme aus? BigDecimal a = new BigDecimal("1.6"); BigDecimal b = new BigDecimal("9.2"); a.divide(b) // results in the following exception. Ausnahme: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
Ich muss einige Gleitkommavariablen berechnen und mein Kollege schlägt mir vor, sie BigDecimalstattdessen zu verwenden, doubleda sie genauer sind. Aber ich möchte wissen, was es ist und wie ich das Beste daraus machen kann BigDecimal?
Ich versuche, BigDecimal-Werte auf zwei Dezimalstellen aufzurunden. Ich benutze BigDecimal rounded = value.round(new MathContext(2, RoundingMode.CEILING)); logger.trace("rounded {} to {}", value, rounded); aber es macht nicht konsequent was ich will: 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 2.8 // …
Ich habe diese kleine verrückte Methode, die BigDecimal-Werte in schöne und lesbare Strings konvertiert. 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); } Es wird jedoch auch ein sogenanntes Gruppentrennzeichen erzeugt ",", mit dem alle meine Werte wie folgt angezeigt werden: xxx,xxx …
Ich habe den folgenden Code in Java; BigDecimal price; // assigned elsewhere if (price.compareTo(new BigDecimal("0.00")) == 0) { return true; } Was ist der beste Weg, um die if-Bedingung zu schreiben?
Ich habe eine Sammlung von BigDecimals (in diesem Beispiel a LinkedList), die ich zusammenfügen möchte. Ist es möglich, dafür Streams zu verwenden? Mir ist aufgefallen, dass die StreamKlasse mehrere Methoden hat Stream::mapToInt Stream::mapToDouble Stream::mapToLong Jedes davon hat eine bequeme sum()Methode. Aber, wie wir wissen, floatund doubleArithmetik ist fast immer eine …
Betrachten Sie die einfache Testklasse: import java.math.BigDecimal; /** * @author The Elite Gentleman * */ public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BigDecimal x = new BigDecimal("1"); BigDecimal y = new BigDecimal("1.00"); System.out.println(x.equals(y)); System.out.println(x.compareTo(y) == 0 ? …
Ich möchte einige einfache Summen mit einigen Währungswerten in BigDecimalTyp machen. 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); Offensichtlich verstehe ich die BigDecimalArithmetik nicht gut , siehe Ausgabe dahinter. Test 0 0 0 Kann mir jemand helfen?
Was ist der Unterschied zwischen diesen beiden Anrufen? (Gibt es irgendwelche?) // 1. new BigDecimal("3.53456").round(new MathContext(4, RoundingMode.HALF_UP)); // 2. new BigDecimal("3.53456").setScale(4, RoundingMode.HALF_UP);
Ich habe eine Hibernate-Methode, die mir ein BigDecimal zurückgibt. Ich habe eine andere API-Methode, an die ich diese Nummer übergeben muss, aber sie akzeptiert Integer als Parameter. Ich kann die Rückgabetypen oder Variablentypen beider Methoden nicht ändern. Wie konvertiere ich nun BigDecimal in Integer und übergebe es an die zweite …
Wie setze ich Tausende Trennzeichen in Java? Ich habe eine String-Darstellung eines BigDecimal, die ich mit einem Tausendertrennzeichen formatieren und als String zurückgeben möchte.
Ich versuche, einige BigDecimal-Werte aus der Zeichenfolge zu lesen. Nehmen wir an, ich habe diesen String: "1,000,000,000.999999999999999" und möchte ein BigDecimal daraus machen. Wie geht das? Erstens mag ich die Lösungen mit String-Ersetzungen (Ersetzen von Kommas usw.) nicht. Ich denke, es sollte einen ordentlichen Formatierer geben, der diesen Job für …
Ich habe versucht, einen Wert von Sekunden (in einer BigDecimal-Variablen) in eine Zeichenfolge in einem editText wie "1 Stunde 22 Minuten 33 Sekunden" oder etwas Ähnlichem zu konvertieren. Ich habe das versucht: String sequenceCaptureTime = ""; BigDecimal roundThreeCalc = new BigDecimal("0"); BigDecimal hours = new BigDecimal("0"); BigDecimal myremainder = new …
Ich habe ein BigDecimalFeld , amountdas Geld repräsentiert, und ich brauche seinen Wert im Browser in einem Format wie zu drucken $123.00, $15.50, $0.33. Wie kann ich das machen? (Die einzige einfache Lösung , die ich selbst sehen wird immer floatValueaus BigDecimalund dann mit NumberFormatmachen zweistelliger Präzision für den Bruchteil).
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.