Guten Abend. Nochmal. Es ist lange her seit meinem letzten Beitrag. .. ..
In diesem Artikel werde ich die Verwendung von BigDecimal beschreiben, wodurch die Berechnung nach dem Dezimalpunkt in Java genau ist. Ich werde nicht darauf eingehen, warum die Berechnung nach dem Dezimalpunkt genau durchgeführt werden kann, also hoffe ich, dass Sie es selbst herausfinden können. Ich hoffe, es ist hilfreich für diejenigen, die nach dem Dezimalpunkt genau berechnen möchten.
Lassen Sie uns nun über die grundlegende Big Decimal-Beschreibungsmethode schreiben. BigDecimal verwenden
.java
import java.math.BigDecimal;
Muss importiert werden. Da es sich um eine Standardbibliothek handelt, muss sie nicht von außen mitgebracht werden und kann sofort verwendet werden. Die Beschreibungsmethode und das Verwendungsbeispiel sind unten aufgeführt.
Vier Regeln | Beschreibungsmethode |
---|---|
Hinzufügen | add |
Subtrahieren | subtract |
Multiplizieren | multiply |
Teilung | divide |
Main.java
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
//Wertedefinition
int one = 1;
int two = 2;
BigDecimal three = BigDecimal.valueOf(3);
BigDecimal five = BigDecimal.valueOf(5);
//Basic
System.out.println(three.add(five));//8
System.out.println(three.subtract(five));//-2
System.out.println(three.multiply(five));//15
System.out.println(three.divide(five));//0.6
//Ein wenig angewendet
System.out.println(BigDecimal.valueOf(two).add(BigDecimal.valueOf(one)).multiply(three));//9
}
}
Eine solche Beschreibung ist möglich. Wie in der Anwendung des Kommentarteils gezeigt, ist es auch möglich, mehrmals hintereinander zu schreiben. (Ich habe Big Decimal ein halbes Jahr lang verwendet, ohne das zu wissen ...)
Ab hier befasst sich die Berechnung mit dem Dezimalpunkt. Da die Beschreibung von ROUND_UP usw. in Java9 oder höher nicht empfohlen wird, verwenden Sie bitte die in diesem Artikel verwendete Beschreibung von UP usw. Mit BogDecimal können Sie Werte unterhalb des Dezimalpunkts abschneiden oder abrunden. Verwenden Sie dazu die setScale-Methode. Beschreiben Sie im ersten Argument die Anzahl der zu steuernden Dezimalstellen. Wenn das erste Argument von setscale beispielsweise 0 ist, wird auf die erste Ziffer gesteuert. Die Beschreibungsmethode und das Verwendungsbeispiel werden unten beschrieben.
Rundungsmethode | Beschreibungsmethode |
---|---|
Rundung | HALF_UP |
Zusammenfassen | UP |
Kürzen | DOWN |
Main.java
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
//Wertedefinition
BigDecimal one = BigDecimal.valueOf(1);
BigDecimal three = BigDecimal.valueOf(3);
BigDecimal num = new BigDecimal("1.567");
//Basic
System.out.println(num.setScale(0,RoundingMode.HALF_UP));//2
System.out.println(num.setScale(1,RoundingMode.DOWN));//1.5
System.out.println(num.setScale(2,RoundingMode.UP));//1.57
//Ein wenig angewendet
System.out.println(one.divide(three).setScale(2,RoundingMode.DOWN));//error
System.out.println(one.divide(three,2,RoundingMode.DOWN));//0.3
}
}
Die Variablendeklaration und -zuweisung in der 3. Zeile der Wertedefinition unterscheidet sich von der 1. und 2. Zeile. Selbst wenn Sie BigDecimal verwenden, können Sie den Dezimalpunkt möglicherweise nicht perfekt verarbeiten. Als Gegenmaßnahme dagegen ist es bei Verwendung des Dezimalpunkts in BigDecimal besser, ihn als Zeichenfolge zu behandeln. Obwohl es sich um einen String-Typ handelt, wird er so berechnet, wie er ist.
Ich habe in der zweiten Zeile des Antrags eine spezielle Beschreibung gemacht. Ich werde das erklären. Wenn ein Kreisbruch in der BigDecimal-Typteilung auftritt (in diesem Fall 0,3333 ...) Ich erhalte eine Ausnahme für java.lang.ArithmeticException. Als Gegenmaßnahme können Sie mit Big Decimal so etwas wie die zweite Anwendungszeile schreiben. Mit dieser Beschreibung ist es möglich, ein Programm zu schreiben, ohne eine Ausnahme auszulösen.
Nachdem Sie den Dezimalpunkt in BigDecimal berechnet haben, möchten Sie diesen Wert möglicherweise in einem primitiven Typ verwenden. Daher werde ich abschließend beschreiben, wie vom BigDecimal-Typ in den Int-Typ oder den Double-Typ konvertiert wird. Int-Typ und Double-Typ werden als Beispiele gezeigt.
Der Typ, den Sie konvertieren möchten | Beschreibungsmethode |
---|---|
int | intValue() |
double | doubleValue() |
Main.java
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
//Wertedefinition
BigDecimal one = BigDecimal.valueOf(1);
BigDecimal num = new BigDecimal("1.567");
int a;
double b;
//Typkonvertierung
a = one.intValue();
b = num.doubleValue();
}
}
Durch Schreiben auf diese Weise ist es möglich, den von BigDecimal berechneten Wert in einen primitiven Typ umzuwandeln.
Dieses Mal schrieb ich über die grundlegende Beschreibung von BigDecimal, die häufig verwendet wird, um Berechnungen nach dem Dezimalpunkt in Java genau durchzuführen. Es gibt viele andere nützliche Methoden, wie zum Beispiel einen großen / kleinen Vergleich von Big Decimal und Power of Power. Schauen Sie sich diese also bitte an. Wenn Sie eine Meinung haben, dass Sie etwas mehr wissen möchten, kann ich einen Artikel hinzufügen. (Ich habe Lust zu schreiben, aber es hängt davon ab, wie beschäftigt ich bin ...) Wenn es Fehler, seltsame Ausdrücke oder Teile gibt, die klarer beschrieben werden können, ist dies meine Studie. Bitte kommentieren Sie diese. Vielen Dank, dass Sie so weit gelesen haben.
Recommended Posts