BigDecimal Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Die BigDecimal Klasse implementiert unveränderliche Dezimalzahlen mit beliebiger Genauigkeit.
[Android.Runtime.Register("android/icu/math/BigDecimal", ApiSince=24, DoNotGenerateAcw=true)]
public class BigDecimal : Java.Lang.Number, IDisposable, Java.Lang.IComparable
[<Android.Runtime.Register("android/icu/math/BigDecimal", ApiSince=24, DoNotGenerateAcw=true)>]
type BigDecimal = class
inherit Number
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IComparable
- Vererbung
- Attribute
- Implementiert
Hinweise
Die BigDecimal Klasse implementiert unveränderliche Dezimalzahlen mit beliebiger Genauigkeit. Die Methoden der BigDecimal Klasse stellen Vorgänge für Festkomma- und Gleitkommaarithmetik, Vergleich, Formatkonvertierungen und Hashing bereit.
Da die Zahlen dezimal sind, gibt es eine genaue Entsprechung zwischen einer Instanz eines BigDecimal Objekts und seiner String Darstellung. Die BigDecimal Klasse stellt direkte Konvertierungen in und von String Zeichenarrayobjekten (char[]) sowie Konvertierungen in und aus den Java Grundtyptypen (die möglicherweise nicht genau sein können) und BigInteger.
In den Beschreibungen von Konstruktoren und Methoden in dieser Dokumentation wird der Wert eines BigDecimal Zahlenobjekts als Ergebnis des Aufrufens der toString() Methode für das Objekt angezeigt. Die interne Darstellung einer Dezimalzahl ist weder definiert noch verfügbar gemacht und darf das Ergebnis eines Vorgangs nicht beeinflussen.
Die von dieser Klasse bereitgestellte Gleitkommaarithmetik wird durch den ANSI X3.274-1996-Standard definiert und auch unter http://www2.hursley.ibm.com/decimal<br> dokumentiert[Diese URL wird geändert.]<h3>Operator-Methoden</h3>
Vorgänge für BigDecimal Zahlen werden durch ein MathContext Objekt gesteuert, das den Kontext (Genauigkeit und andere Informationen) für den Vorgang bereitstellt. Methoden, die einen MathContext Parameter verwenden können, implementieren die standardmäßigen arithmetischen Operatoren für BigDecimal Objekte und werden als Operatormethoden bezeichnet. Die Standardeinstellungen, die von der Konstante MathContext#DEFAULT (digits=9, form=SCIENTIFIC, lostDigits=false, roundingMode=ROUND_HALF_UP) bereitgestellt werden, führen eine allgemeine Gleitkommaarithmetik auf neun Ziffern der Genauigkeit aus. Der MathContext Parameter darf nicht sein null.
Jede Operatormethode verfügt auch über eine Version, die keinen Parameter verwendet MathContext . Für diese Version jeder Methode werden digits=0, form=PLAIN, lostDigits=false, roundingMode=ROUND_HALF_UPdie verwendeten Kontexteinstellungen verwendet. Diese Einstellungen führen Festkommaarithmetik mit unbegrenzter Genauigkeit aus, wie für die ursprüngliche BigDecimal-Klasse in Java 1.1 und Java 1.2 definiert.
Bei monadischen Operatoren ist nur der optionale MathContext Parameter vorhanden; der Vorgang wirkt auf das aktuelle Objekt.
Bei dyadischen Operatoren ist ein BigDecimal Parameter immer vorhanden; er darf nicht sein null. Der Vorgang fungiert mit dem aktuellen Objekt, dem linken Operanden und dem Parameter, der BigDecimal der rechte Operand ist.
Fügen Sie beispielsweise zwei BigDecimal Objekte hinzu, die von den Namen award bezeichnet werden, und extra können wie folgt geschrieben werden:
award.add(extra) <br>award.add(extra, MathContext.DEFAULT) <br>award.add(extra, acontext)
(dabei acontext handelt es sich um ein MathContext Objekt), das ein BigDecimal Objekt zurückgibt, dessen Wert das Ergebnis des Hinzufügens award und extra unter den entsprechenden Kontexteinstellungen ist.
Wenn eine BigDecimal Operatormethode verwendet wird, definieren eine Reihe von Regeln, was das Ergebnis sein wird (und wie das Ergebnis anhand von Auswirkungen als Zeichenfolge dargestellt wird). Diese Regeln werden in der BigDecimal-arithmetischen Dokumentation definiert (siehe url oben), aber in zusammenfassung: <ul><li>Ergebnisse werden normalerweise mit bis zu einer maximalen Anzahl von signifikanten Ziffern berechnet. Wenn beispielsweise der MathContext Parameter für einen Vorgang MathContext.DEFAULT wäre, würde das Ergebnis auf 9 Ziffern gerundet; die Division von 2 bis 3 würde dann zu 0,66666667 führen.
<br> You can change the default of 9 significant digits by providing the method with a suitable MathContext object. Auf diese Weise können Sie beliebig viele Ziffern berechnen – bei Bedarf Tausende. Festkommaarithmetik (skaliert) wird mithilfe einer digits Einstellung von 0 (oder weglassen des MathContext Parameters) angegeben.
<Auf> ähnliche Weise können Sie den Algorithmus ändern, der zum Runden vom standardmäßigen "klassischen" Algorithmus verwendet wird.
<li> In Standardarithmetik (d. h. wenn die form Einstellung nicht PLAINist), wird immer ein Nullergebnis als einzelne Ziffer '0' ausgedrückt (d. h. ohne Vorzeichen, Dezimalkomma oder Exponententeil).
<li> Mit Ausnahme der Division und der Netzbetreiber in Standardarithmetik werden nachfolgende Nullen beibehalten (im Gegensatz zu binären Gleitkommavorgängen und den meisten elektronischen Rechnern, die die Informationen über nachfolgende Nullen im Bruchteil der Ergebnisse verlieren).
<br> So zum Beispiel:
new BigDecimal("2.40").add( new BigDecimal("2")) => "4.40" <br>new BigDecimal("2.40").subtract(new BigDecimal("2")) => "0.40" <br>new BigDecimal("2.40").multiply(new BigDecimal("2")) => "4.80" <br>new BigDecimal("2.40").divide( new BigDecimal("2"), def) => "1.2"
wenn der Wert auf der rechten Seite des => Vorgangs das Ergebnis des Vorgangs ist, ausgedrückt als ein String, und def (in diesem und folgenden Beispielen) verweist ).MathContext.DEFAULT Diese Erhaltung der nachgestellten Nullen ist für die meisten Berechnungen (einschließlich finanzbezogener Berechnungen) wünschenswert. Bei Bedarf können nachfolgende Nullen mithilfe der Division um 1 leicht entfernt werden.
<li> In Standardarithmetik wird exponentielle Form für ein Ergebnis verwendet, abhängig von ihrem Wert und der aktuellen Einstellung von digits (der Standardwert ist 9 Ziffern). Wenn die Anzahl der vor dem Dezimalkomma erforderlichen Stellen die digits Einstellung überschreitet oder der absolute Wert der Zahl kleiner als 0.000001ist, wird die Zahl in exponentielle Notation ausgedrückt;
new BigDecimal("1e+6").multiply(new BigDecimal("1e+6"), def)
ergibt anstelle 1E+12 von 1000000000000, und
new BigDecimal("1").divide(new BigDecimal("3E+10"), def)
ergibt anstelle 3.33333333E-11 von 0.0000000000333333333.
Die Form der exponentiellen Notation (wissenschaftlich oder technisch) wird durch die form Einstellung bestimmt.
</ul>
Die Namen der Methoden in dieser Klasse folgen den Konventionen, die von java.lang.Number, java.math.BigIntegerund java.math.BigDecimal in Java 1.1 und Java 1.2 festgelegt wurden.
Java Dokumentation für android.icu.math.BigDecimal.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
| Name | Beschreibung |
|---|---|
| BigDecimal(BigDecimal) |
Erstellt ein |
| BigDecimal(BigInteger, Int32) |
Erstellt ein |
| BigDecimal(BigInteger) |
Erstellt ein |
| BigDecimal(Char[], Int32, Int32) |
Erstellt ein |
| BigDecimal(Char[]) |
Erstellt ein |
| BigDecimal(Double) |
Erstellt ein |
| BigDecimal(Int32) |
Erstellt ein |
| BigDecimal(Int64) |
Erstellt ein |
| BigDecimal(IntPtr, JniHandleOwnership) |
Die |
| BigDecimal(String) |
Erstellt ein |
Felder
| Name | Beschreibung |
|---|---|
| RoundCeiling |
Veraltet.
Rundungsmodus, um auf eine positivere Zahl zu runden. |
| RoundDown |
Veraltet.
Rundungsmodus, um auf Null zu runden. |
| RoundFloor |
Veraltet.
Rundungsmodus, um auf eine negativere Zahl zu runden. |
| RoundHalfDown |
Veraltet.
Rundungsmodus zum nächsten Nachbarn, bei dem ein gleichwertiger Wert abgerundet wird. |
| RoundHalfEven |
Veraltet.
Rundungsmodus, um auf den nächsten Nachbarn zu runden, wobei ein gleichgleicher Wert auf den nächstgelegenen Nachbarn gerundet wird. |
| RoundHalfUp |
Veraltet.
Rundungsmodus zum nächsten Nachbarn, bei dem ein gleichgleicher Wert aufgerundet wird. |
| RoundUnnecessary |
Veraltet.
Rundungsmodus, um zu bestätigen, dass keine Rundung erforderlich ist. |
| RoundUp |
Veraltet.
Rundungsmodus zum Abrunden von Null. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Class |
Gibt die Laufzeitklasse dieses Werts |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
| JniIdentityHashCode |
Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist. (Geerbt von Object) |
| JniManagedPeerState |
Die |
| JniPeerMembers |
Die |
| One |
Die |
| PeerReference |
Ruft den JNI-Objektverweis für diesen Java Peer ab. (Geerbt von Object) |
| Ten |
Die |
| ThresholdClass |
Die |
| ThresholdType |
Die |
| Zero |
Die |
Methoden
| Name | Beschreibung |
|---|---|
| Abs() |
Gibt eine Ebene |
| Abs(MathContext) |
Gibt einen |
| Add(BigDecimal, MathContext) |
Gibt einen |
| Add(BigDecimal) |
Gibt eine Einfache |
| ByteValue() |
Gibt den Wert der angegebenen Zahl als ein |
| ByteValueExact() |
Konvertiert diesen |
| Clone() |
Erstellt und gibt eine Kopie dieses Objekts zurück. (Geerbt von Object) |
| CompareTo(BigDecimal, MathContext) |
Vergleicht dies |
| CompareTo(BigDecimal) |
Vergleicht dies |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Die |
| Dispose() |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| Dispose(Boolean) |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| DisposeUnlessReferenced() |
Die |
| Divide(BigDecimal, Int32, RoundOptions) |
Gibt eine Einfache |
| Divide(BigDecimal, MathContext) |
Gibt einen |
| Divide(BigDecimal, RoundOptions) |
Gibt einen einfachen |
| Divide(BigDecimal) |
Gibt eine Einfache |
| DivideInteger(BigDecimal, MathContext) |
Gibt einen |
| DivideInteger(BigDecimal) |
Gibt einen einfachen |
| DoubleValue() |
Konvertiert diesen |
| Equals(Object) |
Die |
| Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
| FloatValue() |
Konvertiert diesen |
| Format(Int32, Int32, Int32, Int32, Int32, RoundOptions) |
Gibt die |
| Format(Int32, Int32) |
Gibt die |
| GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
| IntValue() |
Konvertiert dies |
| IntValueExact() |
Konvertiert dies |
| JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind. (Geerbt von Object) |
| LongValue() |
Konvertiert diesen |
| LongValueExact() |
Konvertiert diesen |
| Max(BigDecimal, MathContext) |
Gibt einen |
| Max(BigDecimal) |
Gibt eine Ebene |
| Min(BigDecimal, MathContext) |
Gibt einen |
| Min(BigDecimal) |
Gibt eine Ebene |
| MovePointLeft(Int32) |
Gibt eine einfache Zahl |
| MovePointRight(Int32) |
Gibt eine einfache Zahl |
| Multiply(BigDecimal, MathContext) |
Gibt einen |
| Multiply(BigDecimal) |
Gibt eine Einfache |
| Negate() |
Gibt eine Ebene |
| Negate(MathContext) |
Gibt einen |
| Notify() |
Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet. (Geerbt von Object) |
| NotifyAll() |
Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten. (Geerbt von Object) |
| Plus() |
Gibt eine Ebene |
| Plus(MathContext) |
Gibt einen |
| Pow(BigDecimal, MathContext) |
Gibt einen |
| Pow(BigDecimal) |
Gibt eine Einfache |
| Remainder(BigDecimal, MathContext) |
Gibt einen |
| Remainder(BigDecimal) |
Gibt eine Einfache zurück |
| Scale() |
Gibt die Skalierung dieses Werts |
| SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Die |
| SetScale(Int32, RoundOptions) |
Gibt eine einfache |
| SetScale(Int32) |
Gibt eine einfache |
| ShortValue() |
Gibt den Wert der angegebenen Zahl als ein |
| ShortValueExact() |
Konvertiert diesen |
| Signum() |
Gibt das Zeichen dieses |
| Subtract(BigDecimal, MathContext) |
Gibt einen |
| Subtract(BigDecimal) |
Gibt eine Einfache |
| ToArray<T>() |
Erstellt ein verwaltetes Array aus diesem Java Arraywrapper. (Geerbt von Object) |
| ToBigDecimal() |
Konvertiert diesen |
| ToBigInteger() |
Konvertiert diesen |
| ToBigIntegerExact() |
Konvertiert diesen |
| ToCharArray() |
Gibt das |
| ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
| UnregisterFromRuntime() |
Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf. (Geerbt von Object) |
| UnscaledValue() |
Gibt die Zahl als |
| ValueOf(Double) |
Übersetzt ein |
| ValueOf(Int64, Int32) |
Übersetzt eine |
| ValueOf(Int64) |
Übersetzt ein |
| Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><> (Geerbt von Object) |
| Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
| Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IComparable.CompareTo(Object) |
Die |
| IJavaPeerable.Disposed() |
Die |
| IJavaPeerable.Finalized() |
Die |
| IJavaPeerable.JniObjectReferenceControlBlock |
Die |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Die |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Die |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Die |
| IJavaPeerable.UnregisterFromRuntime() |
Die |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ruft den JNI-Namen des Typs der Instanz |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
| JavaCast<TResult>(IJavaObject) |
Die |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |