Das Beispiel in diesem Artikel beschreibt die einfache Verwendung der BigDecimal-Klasse in Java. Es handelt sich um eine sehr praktische Fähigkeit in der Java-Programmierung. Sie wird als Referenz an alle weitergegeben. Die spezifische Nutzungsanalyse lautet wie folgt:
Wenn es um Geschäftsberechnungen in Java geht, wissen wir im Allgemeinen, dass Float und Double nicht verwendet werden können, da sie keine präzisen Berechnungen durchführen können. Allerdings stellen die Java-Designer Programmierern eine sehr nützliche Klasse BigDecimal zur Verfügung, die die Mängel von Float- und Double-Klassen beheben kann, die keine präzisen Berechnungen durchführen können. Die BigDecimal-Klasse befindet sich im Klassenpaket java.maths. Schauen wir uns zunächst an, wie man ein BigDecimal-Objekt erstellt. Es gibt viele Konstruktoren zur Veranschaulichung: Einer ist BigDecimal(double val) und der andere ist BigDecimal(String str). Es scheint keinen großen Unterschied zwischen den beiden zu geben, aber wie die API-Beschreibung sagt:
/*Die Ergebnisse dieses Konstruktors können etwas unvorhersehbar sein. Man könnte annehmen, dass new BigDecimal(.1) genau gleich .1 ist, aber es ist tatsächlich gleich .100000000000000055511151231257827021181583404541015625. Das liegt daran, dass .1 nicht genau als dargestellt werden kann doppelt (oder dafür Materie, als binärer Bruch einer beliebigen endlichen Länge. Daher ist der lange Wert, der an den Konstruktor übergeben wird, ungeachtet des Anscheins nicht genau gleich .1. Der (String-)Konstruktor hingegen ist vollkommen vorhersehbar : new BigDecimal(".1") ist erwartungsgemäß genau gleich .1. Daher wird im Allgemeinen empfohlen, den (String)-Konstruktor diesem vorzuziehen.*/Das heißt, ein Konstruktor, der double als Parameter verwendet, kann ein BigDecimal-Objekt nicht genau erstellen. Sie müssen eine Kontextumgebung angeben, dh das genaue Bit angeben. Der Konstruktor, der ein String-Objekt als Parameter verwendet, kann ein BigDecimal-Objekt genau erstellen. Bitte schauen Sie sich den folgenden Code an:
import java.math.*;public class TestBigDecimal { public static void main(String args[]){ BigDecimal bd = new BigDecimal("10.123"); BigDecimal bd1 = new BigDecimal(10.123); System.out.println(bd + "/n"+ bd1); }}Ausgabe nach dem Ausführen:
10.123
10.1229999999999993320898283855058252811431884765625
Daher hängt die Auswahl eines Konstruktors von den spezifischen Anforderungen ab.
Darüber hinaus werden viele Leute fragen, wie man grundlegende Typen wie int-, float-, double-, long- und BigDecimal-Objekte ineinander und voneinander konvertieren kann. Ganz einfach:
Basistypen werden über Konstruktoren in entsprechende BigDecimal-Objekte konvertiert, und die BigDecimal-Klasse stellt Methoden wie intValue(), floatValue(), doubleValue() und longValue() bereit, um BigDecimal-Objekte in entsprechende Werte zu konvertieren.
Bezüglich der Berechnung von BigDecimal habe ich den Fragebeitrag einer Person im Forum als Beispiel genommen, um kurz die Berechnungsmethode von BigDecimal aufzuschreiben. Das Thema ist: Li Bai ging ohne Zwischenfälle auf der Straße spazieren und trug einen Topf, um Wein zu kaufen. Wenn Sie auf einen Laden stoßen, verdoppeln Sie die Menge, wenn Sie Blumen sehen, trinken Sie einen Dou. Wenn Sie auf Blumen und einen Laden treffen, trinken Sie den gesamten Wein im Topf ?
Diese Frage sollte von hinten nach vorne vorangetrieben und die Berechnung umgekehrt werden, um schließlich das Volumen des ursprünglichen Weins zu erhalten.
import java.math.*;public class Libai { public static void main(String args[]){ BigDecimal volumn = new BigDecimal("0"); for (int i=0; i<5; i++){ volumn = volumn .add(new BigDecimal("1")); volumn = volumn.divide(new BigDecimal("2") } System.out.print(volumn); }}Laufergebnisse:
0,96875
Ich hoffe, dass das, was in diesem Artikel beschrieben wird, jedem beim Erlernen der Java-Programmierung hilfreich sein wird.