BigDecimal Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A BigDecimal classe implementa números decimais de precisão arbitrária imutáveis.
[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
- Herança
- Atributos
- Implementações
Comentários
A BigDecimal classe implementa números decimais de precisão arbitrária imutáveis. Os métodos da BigDecimal classe fornecem operações para aritmética de ponto fixo e flutuante, comparação, conversões de formato e hash.
Como os números são decimais, há uma correspondência exata entre uma instância de um BigDecimal objeto e sua String representação; a BigDecimal classe fornece conversões diretas de String e para objetos de matriz de caractere (char[]), bem como conversões de e para os tipos primitivos Java (que podem não ser exatos) e BigInteger.
Nas descrições de construtores e métodos nesta documentação, o valor de um BigDecimal objeto numérico é mostrado como resultado da invocação do toString() método no objeto. A representação interna de um número decimal não é definida nem exposta e não tem permissão para afetar o resultado de qualquer operação.
A aritmética de ponto flutuante fornecida por essa classe é definida pelo padrão ANSI X3.274-1996 e também está documentada em http://www2.hursley.ibm.com/decimal<br>[Essa URL será alterada.]<Métodos> do operador h3</h3>
As operações em BigDecimal números são controladas por um MathContext objeto, que fornece o contexto (precisão e outras informações) para a operação. Métodos que podem usar um MathContext parâmetro implementam os operadores aritméticos padrão para BigDecimal objetos e são conhecidos como métodos de operador. As configurações padrão fornecidas pela constante MathContext#DEFAULT (digits=9, form=SCIENTIFIC, lostDigits=false, roundingMode=ROUND_HALF_UP) executam aritmética de ponto flutuante de uso geral para nove dígitos de precisão. O parâmetro MathContext não pode ser null.
Cada método de operador também tem uma versão fornecida que não usa um MathContext parâmetro. Para esta versão de cada método, as configurações de contexto usadas sãodigits=0, form=PLAIN, lostDigits=false, roundingMode=ROUND_HALF_UP; essas configurações executam aritmética de ponto fixo com precisão ilimitada, conforme definido para a classe BigDecimal original em Java 1.1 e Java 1.2.
Para operadores monádicos, somente o parâmetro opcional MathContext está presente; a operação atua no objeto atual.
Para operadores dyadic, um BigDecimal parâmetro está sempre presente; ele não deve ser null. A operação atua com o objeto atual sendo o operando à esquerda e o BigDecimal parâmetro sendo o operando à direita.
Por exemplo, adicionar dois BigDecimal objetos referenciados pelos nomes award e extra pode ser escrito como qualquer um deles:
award.add(extra) <br>award.add(extra, MathContext.DEFAULT) <br>award.add(extra, acontext)
(onde acontext está um MathContext objeto), que retornaria um BigDecimal objeto cujo valor é o resultado da adição award e extra das configurações de contexto apropriadas.
Quando um BigDecimal método de operador é usado, um conjunto de regras define qual será o resultado (e, por implicação, como o resultado seria representado como uma cadeia de caracteres). Essas regras são definidas na documentação aritmética bigdecimal (consulte a URL acima), mas em resumo: <ul><li>Os resultados normalmente são calculados com até algum número máximo de dígitos significativos. Por exemplo, se o MathContext parâmetro de uma operação fosse MathContext.DEFAULT , o resultado seria arredondado para 9 dígitos; a divisão de 2 por 3 resultaria em 0,66666666667.
<br> Você pode alterar o padrão de 9 dígitos significativos fornecendo ao método um objeto adequado MathContext . Isso permite calcular o uso de quantos dígitos forem necessários, milhares, se necessário. A aritmética de ponto fixo (dimensionado) é indicada usando uma digits configuração de 0 (ou omitindo o MathContext parâmetro).
<br> Da mesma forma, você pode alterar o algoritmo usado para arredondamento do algoritmo "clássico" padrão.
<li> Em aritmética padrão (ou seja, quando a form configuração não PLAINé ), um resultado zero é sempre expresso como o único dígito '0' (ou seja, sem sinal, ponto decimal ou parte expoente).
<li> Exceto para os operadores de divisão e energia em aritmética padrão, zeros à direita são preservados (isso contrasta com operações de ponto flutuante binário e a maioria das calculadoras eletrônicas, que perdem as informações sobre zeros à direita na parte fracionária dos resultados).
<br> So, por exemplo:
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"
em que o valor à direita seria => o resultado da operação, expresso como um Stringe def (neste e nos exemplos a seguir) se refere a MathContext.DEFAULT ). Essa preservação de zeros à direita é desejável para a maioria dos cálculos (incluindo cálculos financeiros). Se necessário, zeros à direita podem ser facilmente removidos usando a divisão por 1.
<li> No formato aritmético padrão, o formulário exponencial é usado para um resultado, dependendo de seu valor e da configuração atual de digits (o padrão é 9 dígitos). Se o número de locais necessários antes do ponto decimal exceder a digits configuração ou o valor absoluto do número for menor que 0.000001, então o número será expresso em notação exponencial; portanto,
new BigDecimal("1e+6").multiply(new BigDecimal("1e+6"), def)
resulta em 1E+12 vez de 1000000000000, e
new BigDecimal("1").divide(new BigDecimal("3E+10"), def)
resulta em 3.33333333E-11 vez de 0.0000000000333333333.
A forma da notação exponencial (científica ou de engenharia) é determinada pela configuração form .
</ul>
Os nomes dos métodos nesta classe seguem as convenções estabelecidas por java.lang.Number, java.math.BigIntegere java.math.BigDecimal em Java 1.1 e Java 1.2.
Java documentação para android.icu.math.BigDecimal.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Construtores
| Nome | Description |
|---|---|
| BigDecimal(BigDecimal) |
Constrói um |
| BigDecimal(BigInteger, Int32) |
Constrói um |
| BigDecimal(BigInteger) |
Constrói um |
| BigDecimal(Char[], Int32, Int32) |
Constrói um |
| BigDecimal(Char[]) |
Constrói um |
| BigDecimal(Double) |
Constrói um |
| BigDecimal(Int32) |
Constrói um |
| BigDecimal(Int64) |
Constrói um |
| BigDecimal(IntPtr, JniHandleOwnership) |
A |
| BigDecimal(String) |
Constrói um |
Campos
| Nome | Description |
|---|---|
| RoundCeiling |
Obsoleto.
Modo de arredondamento para arredondar para um número mais positivo. |
| RoundDown |
Obsoleto.
Modo de arredondamento para arredondar em direção a zero. |
| RoundFloor |
Obsoleto.
Modo de arredondamento para arredondar para um número mais negativo. |
| RoundHalfDown |
Obsoleto.
Modo de arredondamento para arredondar para o vizinho mais próximo, onde um valor equidistante é arredondado para baixo. |
| RoundHalfEven |
Obsoleto.
Modo de arredondamento para arredondar para o vizinho mais próximo, onde um valor equidistante é arredondado para o vizinho par mais próximo. |
| RoundHalfUp |
Obsoleto.
Modo de arredondamento para arredondar para o vizinho mais próximo, onde um valor equidistante é arredondado para cima. |
| RoundUnnecessary |
Obsoleto.
Modo de arredondamento para afirmar que nenhum arredondamento é necessário. |
| RoundUp |
Obsoleto.
Modo de arredondamento para arredondar para longe de zero. |
Propriedades
| Nome | Description |
|---|---|
| Class |
Retorna a classe de runtime deste |
| Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
| JniIdentityHashCode |
Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade. (Herdado de Object) |
| JniManagedPeerState |
A |
| JniPeerMembers |
A |
| One |
A |
| PeerReference |
Obtém a referência de objeto JNI para este par Java. (Herdado de Object) |
| Ten |
A |
| ThresholdClass |
A |
| ThresholdType |
A |
| Zero |
A |
Métodos
| Nome | Description |
|---|---|
| Abs() |
Retorna um simples |
| Abs(MathContext) |
Retorna um |
| Add(BigDecimal, MathContext) |
Retorna um |
| Add(BigDecimal) |
Retorna uma planície |
| ByteValue() |
Retorna o valor do número especificado como um |
| ByteValueExact() |
Converte isso |
| Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
| CompareTo(BigDecimal, MathContext) |
Compara isso |
| CompareTo(BigDecimal) |
Compara isso |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
A |
| Dispose() |
Libera os recursos mantidos por esse par Java. (Herdado de Object) |
| Dispose(Boolean) |
Libera os recursos mantidos por esse par Java. (Herdado de Object) |
| DisposeUnlessReferenced() |
A |
| Divide(BigDecimal, Int32, RoundOptions) |
Retorna uma simples |
| Divide(BigDecimal, MathContext) |
Retorna um |
| Divide(BigDecimal, RoundOptions) |
Retorna uma simples |
| Divide(BigDecimal) |
Retorna uma planície |
| DivideInteger(BigDecimal, MathContext) |
Retorna um |
| DivideInteger(BigDecimal) |
Retorna uma planície |
| DoubleValue() |
Converte isso |
| Equals(Object) |
A |
| Equals(Object) |
Indica se algum outro objeto é "igual a" este. (Herdado de Object) |
| FloatValue() |
Converte isso |
| Format(Int32, Int32, Int32, Int32, Int32, RoundOptions) |
Retorna a |
| Format(Int32, Int32) |
Retorna a |
| GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
| IntValue() |
Converte isso |
| IntValueExact() |
Converte isso |
| JavaFinalize() |
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto. (Herdado de Object) |
| LongValue() |
Converte isso |
| LongValueExact() |
Converte isso |
| Max(BigDecimal, MathContext) |
Retorna um |
| Max(BigDecimal) |
Retorna uma simples |
| Min(BigDecimal, MathContext) |
Retorna um |
| Min(BigDecimal) |
Retorna uma planície |
| MovePointLeft(Int32) |
Retorna uma planície |
| MovePointRight(Int32) |
Retorna uma planície |
| Multiply(BigDecimal, MathContext) |
Retorna um |
| Multiply(BigDecimal) |
Retorna uma planície |
| Negate() |
Retorna uma planície |
| Negate(MathContext) |
Retorna um |
| Notify() |
Ativa um único thread que está aguardando no monitor deste objeto. (Herdado de Object) |
| NotifyAll() |
Ativa todos os threads que estão aguardando no monitor deste objeto. (Herdado de Object) |
| Plus() |
Retorna uma planície |
| Plus(MathContext) |
Retorna um |
| Pow(BigDecimal, MathContext) |
Retorna um |
| Pow(BigDecimal) |
Retorna uma planície |
| Remainder(BigDecimal, MathContext) |
Retorna um |
| Remainder(BigDecimal) |
Retorna uma planície |
| Scale() |
Retorna a escala deste |
| SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle (Herdado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
A |
| SetScale(Int32, RoundOptions) |
Retorna uma simples |
| SetScale(Int32) |
Retorna uma simples |
| ShortValue() |
Retorna o valor do número especificado como um |
| ShortValueExact() |
Converte isso |
| Signum() |
Retorna o sinal disso |
| Subtract(BigDecimal, MathContext) |
Retorna um |
| Subtract(BigDecimal) |
Retorna uma planície |
| ToArray<T>() |
Cria uma matriz gerenciada com base nesse wrapper de matriz Java. (Herdado de Object) |
| ToBigDecimal() |
Converte isso |
| ToBigInteger() |
Converte isso |
| ToBigIntegerExact() |
Converte isso |
| ToCharArray() |
Retorna como |
| ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
| UnregisterFromRuntime() |
Cancela o registro desse par Java do runtime de interoperabilidade. (Herdado de Object) |
| UnscaledValue() |
Retorna o número como um |
| ValueOf(Double) |
Converte um para |
| ValueOf(Int64, Int32) |
Converte um |
| ValueOf(Int64) |
Converte um para |
| Wait() |
Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<> (Herdado de Object) |
| Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
| Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IComparable.CompareTo(Object) |
A |
| IJavaPeerable.Disposed() |
A |
| IJavaPeerable.Finalized() |
A |
| IJavaPeerable.JniObjectReferenceControlBlock |
A |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
A |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
A |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
A |
| IJavaPeerable.UnregisterFromRuntime() |
A |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
A |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |