Ich denke, es gibt viele Situationen, in denen Java in der Entwicklungsarbeit verwendet wird. Ich denke, dass Big Decimal beim Erstellen von Berechnungslogik verwendet werden kann. Plötzlich ist es ein anderer Typ als gewöhnliche ganze Zahlen, also war ich verwirrt und beschloss, ihn im Artikel zu belassen.
https://docs.oracle.com/javase/jp/8/docs/api/java/math/BigDecimal.html> Von oracle.docs Nein, ich verstehe nicht wirklich, auch wenn es mathematisch gesagt wird. .. .. Also mit anderen Worten ... Unbeabsichtigte Ergebnisse können bei Berechnungen erzielt werden, bei denen Floats und Doubles Fehler verursachen. Zum Beispiel
double.java
double result = 10d / 6d;
System.out.println(result)
//Ausgabe 1.6666666666666666666666666666666666666666
Es ist wie es ist. Wie Sie vielleicht wissen, ist das obige Beispiel zu unregelmäßig, wenn Sie die "Bankrundung" berechnen möchten, und Sie werden in Schwierigkeiten geraten. Hier kommt Big Decimal ins Spiel. Es wird häufig zur Berechnung sogenannter Buchhaltungssysteme verwendet.
BigDecimal unterscheidet sich von der normalen Zahlenberechnung und berechnet wie folgt.
BigDecimalCalc.java
//Wenn Sie 1000 vom Typ BigDecimal durch 100 vom Typ int teilen
BigDecimal bigNum = BigDecimal.valueOf(1000);
BigDecimal result = bigNum.divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN);
System.out.println(result);
Verwenden Sie eine spezielle Methode zum Teilen. Normal / kann nicht verwendet werden. Weitere Informationen finden Sie unter oracle.docs.
Wie man 0 von Big Decimal in bedingten Verzweigungen usw. behandelt Ich bin süchtig danach, wenn ich nicht daran gewöhnt bin. Natürlich war ich süchtig danach, weil ich auch Anfänger bin.
ZeroCompare.java
if(Wert zu vergleichen.compareTo(BigDecimal.ZERO) == 0) {
//・ ・ ・
}
Es sieht aus wie. Mit anderen Worten, es gibt keinen Unterschied zu 0, also 0! Es wird ein Vergleich sein. Übrigens, wenn es 0 oder mehr oder 0 oder weniger ist
Compare.java
ZeroCompare.java
if(Wert zu vergleichen.compareTo(BigDecimal.ZERO) > 0) {
//・ ・ ・
}
Machen.
BigDecimal wird anders als primitive Typen verwendet. Es ist notwendig, sich dessen bewusst zu sein. Insbesondere für Java-Anfänger wie mich ist es schwierig, versehentlich Floats und Doubles zu verwenden, wenn Sie in der tatsächlichen Entwicklungsarbeit genaue Berechnungen durchführen müssen, oder BigDecimal falsch zu verwenden und Kompilierungsfehler zu verursachen. Tu es nicht. Normalerweise interessiert es Sie nicht so sehr, aber bei der Arbeit möchte ich vor Beginn der Entwicklung genau auf den Zweck der zu entwickelnden Berechnungslogik und die erforderliche Genauigkeit hören [Reflection]
Recommended Posts