語言

BigDecimal 類別

定義

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

[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
繼承
屬性
實作

備註

此 BigDecimal 類別實作了不可變的任意精度十進位數字。 該 BigDecimal 類別的方法提供固定運算與浮點運算、比較、格式轉換及雜湊運算。

由於數字為十進位,物件實例BigDecimal與其String表示之間有精確對應;類別BigDecimal提供與字String元陣列(char[])物件的直接轉換,以及與 Java 原始型別(可能不完全精確)和 BigInteger之間的轉換。

在本文件中對建構子與方法的描述中,數字物件的值 BigDecimal 會顯示為在物件上呼叫該 toString() 方法的結果。 十進位數的內部表示既不定義也不暴露,且不允許影響任何操作的結果。

此類別所提供的浮點運算由 ANSI X3.274-1996 標準定義,並可於 http://www2.hursley.ibm.com/decimal<br>[此網址將變更]<h3>運算子方法</h3>

數字 BigDecimal 運算由一個 MathContext 物件控制,該物件提供操作的上下文(精度及其他資訊)。 能取 MathContext 參數的方法實作物件的 BigDecimal 標準算術運算子,稱為 運算子方法。 常數MathContext#DEFAULTdigits=9, form=SCIENTIFIC, lostDigits=false, roundingMode=ROUND_HALF_UP()提供的預設設定可執行九位數精度的通用浮點運算。 參數 MathContext 不得為 null。

每種運算子方法也都有一個不取 MathContext 參數的版本。 此版本的每種方法所使用的上下文設定為digits=0, form=PLAIN, lostDigits=false, roundingMode=ROUND_HALF_UP;這些設定以無限精度執行不動點運算,與 Java 1.1 與 Java 1.2 原始 BigDecimal 類別所定義。

對於單子運算子,僅存在可選 MathContext 參數;操作作用於當前物件。

對於二元算符, BigDecimal 參數總是存在;但該參數不一定是 null。 此操作以當前物件為左操作元, BigDecimal 參數為右操作元。

例如,加入兩個 BigDecimal 以名稱 award 和 extra 表示的物件,可以寫成以下任一:

award.add(extra) <br>award.add(extra, MathContext.DEFAULT) <br>award.add(extra, acontext)

(其中 acontext 是一個 MathContext 物件),該物件會回傳 BigDecimal 一個物件,其值是根據 award 適當的上下文設定加上 和 extra 的結果。

當使用運算子方法時 BigDecimal ,一組規則定義結果會是什麼(以及透過隱含,結果如何以字串表示)。 這些規則在 BigDecimal 算術文件中定義(見上方網址),總結來說: <ul><li>結果通常以最高有效位數計算。 例如,若 MathContext 運算參數為 , MathContext.DEFAULT 則結果將四捨五入為 9 位數;2 除以 3 則為 0.66666667。 <br> 你可以透過提供合適的 MathContext 物件來改變預設的9位有效位數。 這允許你用需要的數字計算——如果需要,甚至數千位。 不動點(縮放)算術則以 digits 設定為 0(或省略 MathContext 參數)來表示。 <br> 同樣地,你也可以將用於四捨五入的演算法從預設的「經典」演算法更改。 <在> 標準算術中(即 form 設定不 PLAIN為 時),零結果總是以單位數 '0' 表示(即無符號、無小數點或指數部分)。 <除了> 標準算術中的除法與冪運算子外,尾隨零點會被保留(這與二進位浮點運算及大多數電子計算機不同,後者在結果的分數部分會失去尾隨零點的資訊)。 <br> 所以,舉例來說:

new BigDecimal("2.40").add( new BigDecimal("2")) =&gt; "4.40" <br>new BigDecimal("2.40").subtract(new BigDecimal("2")) =&gt; "0.40" <br>new BigDecimal("2.40").multiply(new BigDecimal("2")) =&gt; "4.80" <br>new BigDecimal("2.40").divide( new BigDecimal("2"), def) =&gt; "1.2"

其中右側的值 =&gt; 為操作結果,表示為 String,且 def (在此及後續範例中)指 MathContext.DEFAULT )。 保留尾隨零對大多數計算(包括財務計算)是理想的。 如有必要,尾隨零點可用除以1輕鬆去除。 <在> 標準算術中,指數形式用於根據結果值及當前設定 digits (預設為 9 位數)來表示結果。 若小數點前所需的位數超過設定, digits 或該數字的絕對值小於 0.000001,則該數字將以指數符號表示;因此

new BigDecimal("1e+6").multiply(new BigDecimal("1e+6"), def)

結果為 1E+12 ,而 1000000000000,且

new BigDecimal("1").divide(new BigDecimal("3E+10"), def)

結果為 , 3.33333333E-11 而非 0.0000000000333333333。

指數符號的形式(科學符號或工程符號)由設定決定 form 。 </ul>

此類別中方法的名稱遵循由 java.lang.Number、 java.math.BigInteger、 以及 java.math.BigDecimal 在 Java 1.1 和 Java 1.2 中所建立的慣例。

Java 文件 android.icu.math.BigDecimal。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
BigDecimal(BigDecimal)

從 中BigDecimal構造一個java.math.BigDecimal物件。

BigDecimal(BigInteger, Int32)

從 和 BigDecimal 尺度構造一個BigInteger物件。

BigDecimal(BigInteger)

從一個 BigDecimal,以縮放為 0 構造一個BigInteger物件。

BigDecimal(Char[], Int32, Int32)

BigDecimal從一組字元組成物件。

BigDecimal(Char[])

BigDecimal從一組字元組成物件。

BigDecimal(Double)

BigDecimal直接從 構建double一個物件。

BigDecimal(Int32)

BigDecimal直接從 構建int一個物件。

BigDecimal(Int64)

BigDecimal直接從 構建long一個物件。

BigDecimal(IntPtr, JniHandleOwnership)

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

BigDecimal(String)

從 中BigDecimal構造一個String物件。

欄位

名稱 Description
RoundCeiling
已淘汰.

四捨五入模式,讓數字四捨五入。

RoundDown
已淘汰.

將四捨五入模式調整至零。

RoundFloor
已淘汰.

四捨五入模式,將四捨五入到較負的數字。

RoundHalfDown
已淘汰.

將四捨五入模式取入至最近鄰,並向下取整一個等距值。

RoundHalfEven
已淘汰.

將四捨五入模式轉為四捨五入至最近鄰,將等距值四捨五入至最近偶鄰。

RoundHalfUp
已淘汰.

將四捨五入模式取入至最近鄰,並向上取整一個等距值。

RoundUnnecessary
已淘汰.

四捨五入模式,以宣稱不需要四捨五入。

RoundUp
已淘汰.

四捨五入模式從零開始四捨五入。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

(繼承來源 JavaObject)
JniPeerMembers

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

One

那個 BigDecimal 常數的「1」。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
Ten

BigDecimal那個持續的「10」。

ThresholdClass

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

ThresholdType

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

Zero

那個 BigDecimal 恆定的「0」。

方法

名稱 Description
Abs()

回傳一個平素 BigDecimal ,其值為該 BigDecimal的絕對值。

Abs(MathContext)

回傳 a BigDecimal 的值為該 BigDecimal的絕對值。

Add(BigDecimal, MathContext)

回傳 一個 BigDecimal ,其值為 this+rhs。

Add(BigDecimal)

回傳一個平素 BigDecimal ,其值為 this+rhs,使用不動點運算。

ByteValue()

回傳指定數字的值為 byte。

(繼承來源 Number)
ByteValueExact()

將這個 BigDecimal 轉換成 byte。

Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
CompareTo(BigDecimal, MathContext)

將此 BigDecimal 與另一款做比較。

CompareTo(BigDecimal)

用無限的精確度將此 BigDecimal 與另一項進行比較。

Construct(JniObjectReference, JniObjectReferenceOptions)

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

(繼承來源 JavaObject)
Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

(繼承來源 JavaObject)
Divide(BigDecimal, Int32, RoundOptions)

回傳一個平文 BigDecimal ,其值為 this/rhs,使用不動點運算及給定的刻度與捨入模式。

Divide(BigDecimal, MathContext)

回傳 一個 BigDecimal ,其值為 this/rhs。

Divide(BigDecimal, RoundOptions)

回傳一個平素 BigDecimal ,其值為 this/rhs,使用不動點運算和四捨五入模式。

Divide(BigDecimal)

回傳一個平素 BigDecimal ,其值為 this/rhs,使用不動點運算。

DivideInteger(BigDecimal, MathContext)

回傳 a BigDecimal 的值為 的 this/rhs整數部分。

DivideInteger(BigDecimal)

回傳一個平原 BigDecimal ,其值為整 this/rhs數部分。

DoubleValue()

將這個 BigDecimal 轉換成 double。

Equals(Object)

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
FloatValue()

將這個 BigDecimal 轉換成 float。

Format(Int32, Int32, Int32, Int32, Int32, RoundOptions)

回傳 String 此 BigDecimal表示,經版面參數修改並允許指數符號。

Format(Int32, Int32)

回傳 String 此 BigDecimal表示,並依照版面參數修改。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
IntValue()

將此 BigDecimal 轉換成 int。

IntValueExact()

將此 BigDecimal 轉換成 int。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
LongValue()

將這個 BigDecimal 轉換成 long。

LongValueExact()

將這個 BigDecimal 轉換成 long。

Max(BigDecimal, MathContext)

回傳 aBigDecimal,其值為 和 的最大thisrhs值。

Max(BigDecimal)

返回一個平方 BigDecimal ,其值為 和 thisrhs的最大值。

Min(BigDecimal, MathContext)

回傳BigDecimal一個,其值為 和 this的rhs最小值。

Min(BigDecimal)

返回一個平方BigDecimal,其值為 和 的thisrhs最小值。

MovePointLeft(Int32)

回傳一個小數點向左移動了指定位置的平面 BigDecimal 圖。

MovePointRight(Int32)

回傳一個小數點向右移動了指定位置的平面 BigDecimal 。

Multiply(BigDecimal, MathContext)

回傳 一個 BigDecimal ,其值為 this*rhs。

Multiply(BigDecimal)

回傳一個平素 BigDecimal ,其值為 this*rhs,使用不動點運算。

Negate()

回傳一個平原 BigDecimal ,其值為 -this。

Negate(MathContext)

回傳 一個 BigDecimal ,其值為 -this。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
Plus()

回傳一個平原 BigDecimal ,其值為 +this。

Plus(MathContext)

回傳 一個 BigDecimal ,其值為 +this。

Pow(BigDecimal, MathContext)

回傳 一個 BigDecimal ,其值為 this**rhs。

Pow(BigDecimal)

回傳一個平素 BigDecimal ,其值為 this**rhs,使用不動點運算。

Remainder(BigDecimal, MathContext)

回傳 a BigDecimal ,其值為 的 this/rhs餘數。

Remainder(BigDecimal)

回傳一個平方 BigDecimal ,其值為 的 this/rhs餘數,使用不動點運算。

Scale()

回傳這個 BigDecimal刻度。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

(繼承來源 JavaObject)
SetScale(Int32, RoundOptions)

回傳一個具有特定刻度的平面。BigDecimal

SetScale(Int32)

回傳一個具有特定刻度的平面。BigDecimal

ShortValue()

回傳指定數字的值為 short。

(繼承來源 Number)
ShortValueExact()

將這個 BigDecimal 轉換成 short。

Signum()

回傳此 BigDecimal符號 ,為 int。

Subtract(BigDecimal, MathContext)

回傳 一個 BigDecimal ,其值為 this-rhs。

Subtract(BigDecimal)

回傳一個平素 BigDecimal ,其值為 this-rhs,使用不動點運算。

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToBigDecimal()

將這個 BigDecimal 轉換成 java.math.BigDecimal。

ToBigInteger()

將這個 BigDecimal 轉換成 java.math.BigInteger。

ToBigIntegerExact()

將這個 BigDecimal 轉換成 java.math.BigInteger。

ToCharArray()

會回傳 作為 BigDecimal 一個字元陣列。

ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
UnscaledValue()

移除刻度後會回傳數字為 a BigInteger 。

ValueOf(Double)

將 a double 翻譯成 BigDecimal。

ValueOf(Int64, Int32)

用給定的刻度將 a long 轉換成 a BigDecimal 。

ValueOf(Int64)

將 a long 翻譯成 BigDecimal。

Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IComparable.CompareTo(Object)

將此物件與指定的物件比較排序。

IJavaPeerable.Disposed()

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

此 BigDecimal 類別實作了不可變的任意精度十進位數字。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於