Decimal Estructura

Definición

Representa un número de punto flotante decimal.

public value class System::Decimal : IComparable, IComparable<System::Decimal>, IConvertible, IEquatable<System::Decimal>, IFormattable
public value class System::Decimal : IComparable<System::Decimal>, IConvertible, IEquatable<System::Decimal>, IParsable<System::Decimal>, ISpanParsable<System::Decimal>, IUtf8SpanParsable<System::Decimal>, System::Numerics::IAdditionOperators<System::Decimal, System::Decimal, System::Decimal>, System::Numerics::IAdditiveIdentity<System::Decimal, System::Decimal>, System::Numerics::IComparisonOperators<System::Decimal, System::Decimal, bool>, System::Numerics::IDecrementOperators<System::Decimal>, System::Numerics::IDivisionOperators<System::Decimal, System::Decimal, System::Decimal>, System::Numerics::IEqualityOperators<System::Decimal, System::Decimal, bool>, System::Numerics::IFloatingPoint<System::Decimal>, System::Numerics::IFloatingPointConstants<System::Decimal>, System::Numerics::IIncrementOperators<System::Decimal>, System::Numerics::IMinMaxValue<System::Decimal>, System::Numerics::IModulusOperators<System::Decimal, System::Decimal, System::Decimal>, System::Numerics::IMultiplicativeIdentity<System::Decimal, System::Decimal>, System::Numerics::IMultiplyOperators<System::Decimal, System::Decimal, System::Decimal>, System::Numerics::INumber<System::Decimal>, System::Numerics::INumberBase<System::Decimal>, System::Numerics::ISignedNumber<System::Decimal>, System::Numerics::ISubtractionOperators<System::Decimal, System::Decimal, System::Decimal>, System::Numerics::IUnaryNegationOperators<System::Decimal, System::Decimal>, System::Numerics::IUnaryPlusOperators<System::Decimal, System::Decimal>, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public value class System::Decimal : IComparable, IComparable<System::Decimal>, IConvertible, IEquatable<System::Decimal>, IFormattable, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public value class System::Decimal : IComparable, IComparable<System::Decimal>, IConvertible, IEquatable<System::Decimal>, ISpanFormattable, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public value class System::Decimal : IComparable<System::Decimal>, IConvertible, IEquatable<System::Decimal>, IParsable<System::Decimal>, ISpanParsable<System::Decimal>, System::Numerics::IAdditionOperators<System::Decimal, System::Decimal, System::Decimal>, System::Numerics::IAdditiveIdentity<System::Decimal, System::Decimal>, System::Numerics::IComparisonOperators<System::Decimal, System::Decimal, bool>, System::Numerics::IDecrementOperators<System::Decimal>, System::Numerics::IDivisionOperators<System::Decimal, System::Decimal, System::Decimal>, System::Numerics::IEqualityOperators<System::Decimal, System::Decimal, bool>, System::Numerics::IFloatingPoint<System::Decimal>, System::Numerics::IFloatingPointConstants<System::Decimal>, System::Numerics::IIncrementOperators<System::Decimal>, System::Numerics::IMinMaxValue<System::Decimal>, System::Numerics::IModulusOperators<System::Decimal, System::Decimal, System::Decimal>, System::Numerics::IMultiplicativeIdentity<System::Decimal, System::Decimal>, System::Numerics::IMultiplyOperators<System::Decimal, System::Decimal, System::Decimal>, System::Numerics::INumber<System::Decimal>, System::Numerics::INumberBase<System::Decimal>, System::Numerics::ISignedNumber<System::Decimal>, System::Numerics::ISubtractionOperators<System::Decimal, System::Decimal, System::Decimal>, System::Numerics::IUnaryNegationOperators<System::Decimal, System::Decimal>, System::Numerics::IUnaryPlusOperators<System::Decimal, System::Decimal>, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public value class System::Decimal : IComparable, IComparable<System::Decimal>, IConvertible, IEquatable<System::Decimal>, IFormattable, System::Runtime::Serialization::IDeserializationCallback
public value class System::Decimal : IComparable, IConvertible, IFormattable
public value class System::Decimal : IComparable, IComparable<System::Decimal>, IEquatable<System::Decimal>, IFormattable
public struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable
public readonly struct Decimal : IComparable<decimal>, IConvertible, IEquatable<decimal>, IParsable<decimal>, ISpanParsable<decimal>, IUtf8SpanParsable<decimal>, System.Numerics.IAdditionOperators<decimal,decimal,decimal>, System.Numerics.IAdditiveIdentity<decimal,decimal>, System.Numerics.IComparisonOperators<decimal,decimal,bool>, System.Numerics.IDecrementOperators<decimal>, System.Numerics.IDivisionOperators<decimal,decimal,decimal>, System.Numerics.IEqualityOperators<decimal,decimal,bool>, System.Numerics.IFloatingPoint<decimal>, System.Numerics.IFloatingPointConstants<decimal>, System.Numerics.IIncrementOperators<decimal>, System.Numerics.IMinMaxValue<decimal>, System.Numerics.IModulusOperators<decimal,decimal,decimal>, System.Numerics.IMultiplicativeIdentity<decimal,decimal>, System.Numerics.IMultiplyOperators<decimal,decimal,decimal>, System.Numerics.INumber<decimal>, System.Numerics.INumberBase<decimal>, System.Numerics.ISignedNumber<decimal>, System.Numerics.ISubtractionOperators<decimal,decimal,decimal>, System.Numerics.IUnaryNegationOperators<decimal,decimal>, System.Numerics.IUnaryPlusOperators<decimal,decimal>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public readonly struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public readonly struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, ISpanFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public readonly struct Decimal : IComparable<decimal>, IConvertible, IEquatable<decimal>, IParsable<decimal>, ISpanParsable<decimal>, System.Numerics.IAdditionOperators<decimal,decimal,decimal>, System.Numerics.IAdditiveIdentity<decimal,decimal>, System.Numerics.IComparisonOperators<decimal,decimal,bool>, System.Numerics.IDecrementOperators<decimal>, System.Numerics.IDivisionOperators<decimal,decimal,decimal>, System.Numerics.IEqualityOperators<decimal,decimal,bool>, System.Numerics.IFloatingPoint<decimal>, System.Numerics.IFloatingPointConstants<decimal>, System.Numerics.IIncrementOperators<decimal>, System.Numerics.IMinMaxValue<decimal>, System.Numerics.IModulusOperators<decimal,decimal,decimal>, System.Numerics.IMultiplicativeIdentity<decimal,decimal>, System.Numerics.IMultiplyOperators<decimal,decimal,decimal>, System.Numerics.INumber<decimal>, System.Numerics.INumberBase<decimal>, System.Numerics.ISignedNumber<decimal>, System.Numerics.ISubtractionOperators<decimal,decimal,decimal>, System.Numerics.IUnaryNegationOperators<decimal,decimal>, System.Numerics.IUnaryPlusOperators<decimal,decimal>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable, System.Runtime.Serialization.IDeserializationCallback
public readonly struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable, System.Runtime.Serialization.IDeserializationCallback
[System.Serializable]
public struct Decimal : IComparable, IConvertible, IFormattable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable, System.Runtime.Serialization.IDeserializationCallback
public struct Decimal : IComparable, IComparable<decimal>, IEquatable<decimal>, IFormattable
type decimal = struct
    interface IConvertible
    interface IFormattable
type decimal = struct
    interface IConvertible
    interface IFormattable
    interface IParsable<decimal>
    interface ISpanFormattable
    interface ISpanParsable<decimal>
    interface IUtf8SpanFormattable
    interface IUtf8SpanParsable<decimal>
    interface IAdditionOperators<decimal, decimal, decimal>
    interface IAdditiveIdentity<decimal, decimal>
    interface IComparisonOperators<decimal, decimal, bool>
    interface IEqualityOperators<decimal, decimal, bool>
    interface IDecrementOperators<decimal>
    interface IDivisionOperators<decimal, decimal, decimal>
    interface IFloatingPoint<decimal>
    interface IFloatingPointConstants<decimal>
    interface IIncrementOperators<decimal>
    interface IMultiplicativeIdentity<decimal, decimal>
    interface IMultiplyOperators<decimal, decimal, decimal>
    interface INumberBase<decimal>
    interface ISubtractionOperators<decimal, decimal, decimal>
    interface IUnaryNegationOperators<decimal, decimal>
    interface IUnaryPlusOperators<decimal, decimal>
    interface IModulusOperators<decimal, decimal, decimal>
    interface INumber<decimal>
    interface ISignedNumber<decimal>
    interface IMinMaxValue<decimal>
    interface IDeserializationCallback
    interface ISerializable
type decimal = struct
    interface IConvertible
    interface IFormattable
    interface IDeserializationCallback
    interface ISerializable
type decimal = struct
    interface IConvertible
    interface ISpanFormattable
    interface IFormattable
    interface IDeserializationCallback
    interface ISerializable
type decimal = struct
    interface IConvertible
    interface IFormattable
    interface IParsable<decimal>
    interface ISpanFormattable
    interface ISpanParsable<decimal>
    interface IAdditionOperators<decimal, decimal, decimal>
    interface IAdditiveIdentity<decimal, decimal>
    interface IComparisonOperators<decimal, decimal, bool>
    interface IEqualityOperators<decimal, decimal, bool>
    interface IDecrementOperators<decimal>
    interface IDivisionOperators<decimal, decimal, decimal>
    interface IFloatingPoint<decimal>
    interface IFloatingPointConstants<decimal>
    interface INumberBase<decimal>
    interface IIncrementOperators<decimal>
    interface IMultiplicativeIdentity<decimal, decimal>
    interface IMultiplyOperators<decimal, decimal, decimal>
    interface ISubtractionOperators<decimal, decimal, decimal>
    interface IUnaryNegationOperators<decimal, decimal>
    interface IUnaryPlusOperators<decimal, decimal>
    interface IModulusOperators<decimal, decimal, decimal>
    interface INumber<decimal>
    interface ISignedNumber<decimal>
    interface IMinMaxValue<decimal>
    interface IDeserializationCallback
    interface ISerializable
type decimal = struct
    interface IConvertible
    interface IFormattable
    interface IParsable<decimal>
    interface ISpanFormattable
    interface ISpanParsable<decimal>
    interface IAdditionOperators<decimal, decimal, decimal>
    interface IAdditiveIdentity<decimal, decimal>
    interface IComparisonOperators<decimal, decimal, bool>
    interface IEqualityOperators<decimal, decimal, bool>
    interface IDecrementOperators<decimal>
    interface IDivisionOperators<decimal, decimal, decimal>
    interface IFloatingPoint<decimal>
    interface IFloatingPointConstants<decimal>
    interface INumberBase<decimal>
    interface IIncrementOperators<decimal>
    interface IMultiplicativeIdentity<decimal, decimal>
    interface IMultiplyOperators<decimal, decimal, decimal>
    interface ISubtractionOperators<decimal, decimal, decimal>
    interface IUnaryNegationOperators<decimal, decimal>
    interface IUnaryPlusOperators<decimal, decimal>
    interface IUtf8SpanFormattable
    interface IUtf8SpanParsable<decimal>
    interface IModulusOperators<decimal, decimal, decimal>
    interface INumber<decimal>
    interface ISignedNumber<decimal>
    interface IMinMaxValue<decimal>
    interface IDeserializationCallback
    interface ISerializable
type decimal = struct
    interface IConvertible
    interface IFormattable
    interface IDeserializationCallback
[<System.Serializable>]
type decimal = struct
    interface IFormattable
    interface IConvertible
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type decimal = struct
    interface IFormattable
    interface IConvertible
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type decimal = struct
    interface IFormattable
    interface IConvertible
    interface IDeserializationCallback
type decimal = struct
    interface IFormattable
Public Structure Decimal
Implements IComparable, IComparable(Of Decimal), IConvertible, IEquatable(Of Decimal), IFormattable
Public Structure Decimal
Implements IAdditionOperators(Of Decimal, Decimal, Decimal), IAdditiveIdentity(Of Decimal, Decimal), IComparable(Of Decimal), IComparisonOperators(Of Decimal, Decimal, Boolean), IConvertible, IDecrementOperators(Of Decimal), IDeserializationCallback, IDivisionOperators(Of Decimal, Decimal, Decimal), IEqualityOperators(Of Decimal, Decimal, Boolean), IEquatable(Of Decimal), IFloatingPoint(Of Decimal), IFloatingPointConstants(Of Decimal), IIncrementOperators(Of Decimal), IMinMaxValue(Of Decimal), IModulusOperators(Of Decimal, Decimal, Decimal), IMultiplicativeIdentity(Of Decimal, Decimal), IMultiplyOperators(Of Decimal, Decimal, Decimal), INumber(Of Decimal), INumberBase(Of Decimal), IParsable(Of Decimal), ISerializable, ISignedNumber(Of Decimal), ISpanParsable(Of Decimal), ISubtractionOperators(Of Decimal, Decimal, Decimal), IUnaryNegationOperators(Of Decimal, Decimal), IUnaryPlusOperators(Of Decimal, Decimal), IUtf8SpanParsable(Of Decimal)
Public Structure Decimal
Implements IComparable, IComparable(Of Decimal), IConvertible, IDeserializationCallback, IEquatable(Of Decimal), IFormattable, ISerializable
Public Structure Decimal
Implements IComparable, IComparable(Of Decimal), IConvertible, IDeserializationCallback, IEquatable(Of Decimal), ISerializable, ISpanFormattable
Public Structure Decimal
Implements IAdditionOperators(Of Decimal, Decimal, Decimal), IAdditiveIdentity(Of Decimal, Decimal), IComparable(Of Decimal), IComparisonOperators(Of Decimal, Decimal, Boolean), IConvertible, IDecrementOperators(Of Decimal), IDeserializationCallback, IDivisionOperators(Of Decimal, Decimal, Decimal), IEqualityOperators(Of Decimal, Decimal, Boolean), IEquatable(Of Decimal), IFloatingPoint(Of Decimal), IFloatingPointConstants(Of Decimal), IIncrementOperators(Of Decimal), IMinMaxValue(Of Decimal), IModulusOperators(Of Decimal, Decimal, Decimal), IMultiplicativeIdentity(Of Decimal, Decimal), IMultiplyOperators(Of Decimal, Decimal, Decimal), INumber(Of Decimal), INumberBase(Of Decimal), IParsable(Of Decimal), ISerializable, ISignedNumber(Of Decimal), ISpanParsable(Of Decimal), ISubtractionOperators(Of Decimal, Decimal, Decimal), IUnaryNegationOperators(Of Decimal, Decimal), IUnaryPlusOperators(Of Decimal, Decimal)
Public Structure Decimal
Implements IComparable, IComparable(Of Decimal), IConvertible, IDeserializationCallback, IEquatable(Of Decimal), IFormattable
Public Structure Decimal
Implements IComparable, IConvertible, IFormattable
Public Structure Decimal
Implements IComparable, IComparable(Of Decimal), IEquatable(Of Decimal), IFormattable
Herencia
Decimal
Atributos
Implementaciones
IComparable IComparable<Decimal> IConvertible IEquatable<Decimal> IFormattable IComparable<TSelf> IEquatable<TSelf> IParsable<Decimal> IParsable<TSelf> ISpanFormattable ISpanParsable<Decimal> ISpanParsable<TSelf> IUtf8SpanFormattable IUtf8SpanParsable<Decimal> IUtf8SpanParsable<TSelf> IAdditionOperators<Decimal,Decimal,Decimal> IAdditionOperators<TSelf,TSelf,TSelf> IAdditiveIdentity<Decimal,Decimal> IAdditiveIdentity<TSelf,TSelf> IComparisonOperators<Decimal,Decimal,Boolean> IComparisonOperators<TSelf,TSelf,Boolean> IDecrementOperators<Decimal> IDecrementOperators<TSelf> IDivisionOperators<Decimal,Decimal,Decimal> IDivisionOperators<TSelf,TSelf,TSelf> IEqualityOperators<Decimal,Decimal,Boolean> IEqualityOperators<TSelf,TOther,TResult> IEqualityOperators<TSelf,TSelf,Boolean> IFloatingPoint<Decimal> IFloatingPointConstants<Decimal> IFloatingPointConstants<TSelf> IIncrementOperators<Decimal> IIncrementOperators<TSelf> IMinMaxValue<Decimal> IModulusOperators<Decimal,Decimal,Decimal> IModulusOperators<TSelf,TSelf,TSelf> IMultiplicativeIdentity<Decimal,Decimal> IMultiplicativeIdentity<TSelf,TSelf> IMultiplyOperators<Decimal,Decimal,Decimal> IMultiplyOperators<TSelf,TSelf,TSelf> INumber<Decimal> INumber<TSelf> INumberBase<Decimal> INumberBase<TSelf> ISignedNumber<Decimal> ISignedNumber<TSelf> ISubtractionOperators<Decimal,Decimal,Decimal> ISubtractionOperators<TSelf,TSelf,TSelf> IUnaryNegationOperators<Decimal,Decimal> IUnaryNegationOperators<TSelf,TSelf> IUnaryPlusOperators<Decimal,Decimal> IUnaryPlusOperators<TSelf,TSelf> IDeserializationCallback ISerializable

Ejemplos

En el ejemplo de código siguiente se muestra el uso de Decimal.

/// <summary>
/// Keeping my fortune in Decimals to avoid the round-off errors.
/// </summary>
class PiggyBank {
    protected decimal MyFortune;

    public void AddPenny() {
        MyFortune = Decimal.Add(MyFortune, .01m);
    }

    public decimal Capacity {
        get {
            return Decimal.MaxValue;
        }
    }

    public decimal Dollars {
        get {
            return Decimal.Floor(MyFortune);
        }
    }

    public decimal Cents {
        get {
            return Decimal.Subtract(MyFortune, Decimal.Floor(MyFortune));
        }
    }

    public override string ToString() {
        return MyFortune.ToString("C")+" in piggy bank";
    }
}
/// Keeping my fortune in Decimals to avoid the round-off errors.
type PiggyBank() =
    let mutable myFortune = 0m

    member _.AddPenny() =
        myFortune <- Decimal.Add(myFortune, 0.01m)

    member _.Capacity =
        Decimal.MaxValue

    member _.Dollars =
        Decimal.Floor myFortune

    member _.Cents =
        Decimal.Subtract(myFortune, Decimal.Floor myFortune)

    override _.ToString() =
        $"{myFortune:C} in piggy bank"
' Keeping my fortune in Decimals to avoid the round-off errors.
Class PiggyBank
    Protected MyFortune As Decimal

    Public Sub AddPenny()
        MyFortune = [Decimal].Add(MyFortune, 0.01D)
    End Sub

    Public ReadOnly Property Capacity() As Decimal
        Get
            Return [Decimal].MaxValue
        End Get
    End Property

    Public ReadOnly Property Dollars() As Decimal
        Get
            Return [Decimal].Floor(MyFortune)
        End Get
    End Property

    Public ReadOnly Property Cents() As Decimal
        Get
            Return [Decimal].Subtract(MyFortune, [Decimal].Floor(MyFortune))
        End Get
    End Property

    Public Overrides Function ToString() As String
        Return MyFortune.ToString("C") + " in piggy bank"
    End Function
End Class

Comentarios

El Decimal tipo de valor representa números decimales que van desde 79,228,162,514,264,337,593,543,950,335 a negativo 79,228,162,514,264,337,593,543,950,335. El valor predeterminado de un Decimal es 0. El Decimal tipo de valor es adecuado para los cálculos financieros que requieren un gran número de dígitos enteros y fraccionarios significativos y sin errores de redondeo. El Decimal tipo no elimina la necesidad de redondear. En su lugar, minimiza los errores debidos al redondeo. Por ejemplo, el código siguiente genera un resultado de 0,9999999999999999999999999999999999999 en lugar de 1.

decimal dividend = Decimal.One;
decimal divisor = 3;
// The following displays 0.9999999999999999999999999999 to the console
Console.WriteLine(dividend/divisor * divisor);
let dividend = Decimal.One
let divisor = 3m
// The following displays 0.9999999999999999999999999999 to the console
printfn $"{dividend/divisor * divisor}"
Dim dividend As Decimal = Decimal.One
Dim divisor As Decimal = 3
' The following displays 0.9999999999999999999999999999 to the console
Console.WriteLine(dividend/divisor * divisor)

Cuando el resultado de la división y multiplicación se pasa al Round método , el resultado no sufre ninguna pérdida de precisión, como se muestra en el código siguiente.

decimal dividend = Decimal.One;
decimal divisor = 3;
// The following displays 1.00 to the console
Console.WriteLine(Math.Round(dividend/divisor * divisor, 2));
let dividend = Decimal.One
let divisor = 3m
// The following displays 1.00 to the console
printfn $"{Math.Round(dividend/divisor * divisor, 2)}"
Dim dividend As Decimal = Decimal.One
Dim divisor As Decimal = 3
' The following displays 1.00 to the console
Console.WriteLine(Math.Round(dividend/divisor * divisor, 2))

Un número decimal es un valor de punto flotante que consta de un signo, un valor numérico donde cada dígito del valor oscila entre 0 y 9 y un factor de escala que indica la posición de un separador decimal flotante que separa las partes integrales y fraccionarios del valor numérico.

La representación binaria de un Decimal valor es de 128 bits que consta de un número entero de 96 bits y un conjunto de 32 bits de marcas que representan elementos como el signo y el factor de escala que se usa para especificar qué parte de es una fracción decimal. Por lo tanto, la representación binaria de un valor Decimal con el formato ((-2de 96 a 296) / 10(0 a 28)), donde -(296-1) es igual a MinValuey 296-1 es igual a MaxValue. Para obtener más información sobre la representación binaria de Decimal valores y un ejemplo, vea el Decimal(Int32[]) constructor y el GetBits método .

El factor de escalado también conserva los ceros finales en un número Decimal. Los ceros finales no afectan al valor de un Decimal número en operaciones aritméticas o de comparación. Sin embargo, el método ToString podría revelar ceros finales si se aplica una cadena de formato adecuada.

Consideraciones sobre la conversión

Este tipo proporciona métodos que convierten valores Decimal a y desde SByte, Int16, Int32, Int64, Byte, UInt16, UInt32 y UInt64. Las conversiones de estos tipos enteros a Decimal son conversiones de ampliación que nunca pierden información ni generan excepciones.

Las conversiones de Decimal a cualquiera de los tipos integrales son conversiones de restricción, que redondean el valor de Decimal al número entero más cercano hacia cero. Algunos lenguajes, como C#, también admiten la conversión de Decimal valores a Char valores. Si el resultado de estas conversiones no se puede representar en el tipo de destino, se produce una OverflowException excepción.

El Decimal tipo también proporciona métodos que convierten valores de Decimal a y desde valores de Single y Double. Las conversiones de Decimal a o SingleDouble son conversiones de restricción que podrían perder precisión, pero no información sobre la magnitud del valor convertido. La conversión no produce ninguna excepción.

Conversiones de Single o Double a Decimal producen una OverflowException excepción si el resultado de la conversión no se puede representar como un Decimal.

Realización de operaciones en valores decimales

El Decimal tipo admite operaciones matemáticas estándar, como suma, resta, división, multiplicación y negación unaria. También puede trabajar directamente con la representación binaria de un Decimal valor llamando al GetBits método .

Para comparar dos valores Decimal, puede utilizar los operadores de comparación numéricos estándar o llamar al método CompareTo o al método Equals.

También puede llamar a los miembros de la Math clase para realizar una amplia gama de operaciones numéricas, incluida la obtención del valor absoluto de un número, determinar el valor máximo o mínimo de dos Decimal valores, obtener el signo de un número y redondear un número.

Constructores

Nombre Description
Decimal(Double)

Inicializa una nueva instancia de Decimal en el valor del número de punto flotante de precisión doble especificado.

Decimal(Int32, Int32, Int32, Boolean, Byte)

Inicializa una nueva instancia de a partir de Decimal parámetros que especifican las partes constituyentes de la instancia.

Decimal(Int32)

Inicializa una nueva instancia de Decimal en el valor del entero de 32 bits con signo especificado.

Decimal(Int32[])

Inicializa una nueva instancia de Decimal en un valor decimal representado en binario y contenido en una matriz especificada.

Decimal(Int64)

Inicializa una nueva instancia de Decimal en el valor del entero de 64 bits con signo especificado.

Decimal(ReadOnlySpan<Int32>)

Inicializa una nueva instancia de Decimal en un valor decimal representado en binario y contenido en el intervalo especificado.

Decimal(Single)

Inicializa una nueva instancia de Decimal en el valor del número de punto flotante de precisión sencilla especificado.

Decimal(UInt32)

Inicializa una nueva instancia de Decimal en el valor del entero de 32 bits sin signo especificado.

Decimal(UInt64)

Inicializa una nueva instancia de Decimal en el valor del entero de 64 bits sin signo especificado.

Campos

Nombre Description
MaxValue

Representa el valor más grande posible de Decimal. Este campo es constante y de solo lectura.

MinusOne

Representa el número negativo uno (-1).

MinValue

Representa el valor más pequeño posible de Decimal. Este campo es constante y de solo lectura.

One

Representa el número uno (1).

Zero

Representa el número cero (0).

Propiedades

Nombre Description
Scale

Obtiene el factor de escala del decimal, que es un número comprendido entre 0 y 28 que representa el número de dígitos decimales.

Métodos

Nombre Description
Abs(Decimal)

Calcula el valor absoluto de un valor.

Add(Decimal, Decimal)

Agrega dos valores especificados Decimal .

Ceiling(Decimal)

Devuelve el valor entero más pequeño que es mayor o igual que el número decimal especificado.

Clamp(Decimal, Decimal, Decimal)

Fija un valor en un valor mínimo inclusivo y máximo.

Compare(Decimal, Decimal)

Compara dos valores especificados Decimal .

CompareTo(Decimal)

Compara esta instancia con un objeto especificado Decimal y devuelve una comparación de sus valores relativos.

CompareTo(Object)

Compara esta instancia con un objeto especificado y devuelve una comparación de sus valores relativos.

ConvertToInteger<TInteger>(Decimal)

Convierte un valor en un tipo entero especificado mediante saturación en desbordamiento.

ConvertToIntegerNative<TInteger>(Decimal)

Convierte un valor en un tipo entero especificado mediante el comportamiento específico de la plataforma en el desbordamiento.

CopySign(Decimal, Decimal)

Copia el signo de un valor en el signo de otro valor.

CreateChecked<TOther>(TOther)

Crea una instancia del tipo actual a partir de un valor, iniciando una excepción de desbordamiento para los valores que se encuentran fuera del intervalo que se puede representar del tipo actual.

CreateSaturating<TOther>(TOther)

Crea una instancia del tipo actual a partir de un valor, saturando los valores que se encuentran fuera del intervalo que se puede representar del tipo actual.

CreateTruncating<TOther>(TOther)

Crea una instancia del tipo actual a partir de un valor, truncando los valores que se encuentran fuera del intervalo que se puede representar del tipo actual.

Divide(Decimal, Decimal)

Divide dos valores especificados Decimal .

Equals(Decimal, Decimal)

Devuelve un valor que indica si dos instancias especificadas de Decimal representan el mismo valor.

Equals(Decimal)

Devuelve un valor que indica si esta instancia y un objeto especificado Decimal representan el mismo valor.

Equals(Object)

Devuelve un valor que indica si esta instancia y un especificado Object representan el mismo tipo y valor.

Floor(Decimal)

Redondea un número especificado Decimal al entero más cercano hacia el infinito negativo.

FromOACurrency(Int64)

Convierte el entero de 64 bits con signo especificado, que contiene un valor currency de OLE Automation, en el valor equivalente Decimal .

GetBits(Decimal, Span<Int32>)

Convierte el valor de una instancia especificada de Decimal en su representación binaria equivalente.

GetBits(Decimal)

Convierte el valor de una instancia especificada de Decimal en su representación binaria equivalente.

GetHashCode()

Devuelve el código hash de esta instancia.

GetTypeCode()

Devuelve para el TypeCode tipo Decimalde valor .

IsCanonical(Decimal)

Determina si un valor está en su representación canónica.

IsEvenInteger(Decimal)

Determina si un valor representa un número entero par.

IsInteger(Decimal)

Determina si un valor representa un número entero.

IsNegative(Decimal)

Determina si un valor es negativo.

IsOddInteger(Decimal)

Determina si un valor representa un número entero impar.

IsPositive(Decimal)

Determina si un valor es positivo.

Max(Decimal, Decimal)

Compara dos valores con el proceso, que es mayor.

MaxMagnitude(Decimal, Decimal)

Compara dos valores con el proceso, que es mayor.

Min(Decimal, Decimal)

Compara dos valores con el proceso, que es menor.

MinMagnitude(Decimal, Decimal)

Compara dos valores con el proceso, que es menor.

Multiply(Decimal, Decimal)

Multiplica dos valores especificados Decimal .

Negate(Decimal)

Devuelve el resultado de multiplicar el valor especificado Decimal por uno negativo.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Analiza un intervalo de caracteres UTF-8 en un valor.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Analiza un intervalo de caracteres UTF-8 en un valor.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Analiza un intervalo de caracteres en un valor.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Convierte la representación de intervalo de un número en su Decimal equivalente mediante el estilo y el formato específico de la referencia cultural especificados.

Parse(String, IFormatProvider)

Convierte la representación de cadena de un número en su Decimal equivalente mediante la información de formato específica de la referencia cultural especificada.

Parse(String, NumberStyles, IFormatProvider)

Convierte la representación de cadena de un número en su Decimal equivalente mediante el estilo y el formato específico de la referencia cultural especificados.

Parse(String, NumberStyles)

Convierte la representación de cadena de un número en un estilo especificado en su Decimal equivalente.

Parse(String)

Convierte la representación de cadena de un número en su Decimal equivalente.

Remainder(Decimal, Decimal)

Calcula el resto después de dividir dos Decimal valores.

Round(Decimal, Int32, MidpointRounding)

Redondea un valor decimal a la precisión especificada mediante la estrategia de redondeo especificada.

Round(Decimal, Int32)

Redondea un Decimal valor a un número especificado de posiciones decimales.

Round(Decimal, MidpointRounding)

Redondea un valor decimal a un entero mediante la estrategia de redondeo especificada.

Round(Decimal)

Redondea un valor decimal al entero más cercano.

Sign(Decimal)

Calcula el signo de un valor.

Subtract(Decimal, Decimal)

Resta un valor especificado Decimal de otro.

ToByte(Decimal)

Convierte el valor del especificado Decimal en el entero de 8 bits sin signo equivalente.

ToDouble(Decimal)

Convierte el valor del especificado Decimal en el número de punto flotante de precisión doble equivalente.

ToInt16(Decimal)

Convierte el valor del especificado Decimal en el entero de 16 bits con signo equivalente.

ToInt32(Decimal)

Convierte el valor del especificado Decimal en el entero de 32 bits con signo equivalente.

ToInt64(Decimal)

Convierte el valor del especificado Decimal en el entero de 64 bits con signo equivalente.

ToOACurrency(Decimal)

Convierte el valor especificado Decimal en el valor equivalente ole Automation Currency, que se encuentra en un entero de 64 bits con signo.

ToSByte(Decimal)

Convierte el valor del especificado Decimal en el entero de 8 bits con signo equivalente.

ToSingle(Decimal)

Convierte el valor del especificado Decimal en el número de punto flotante de precisión sencilla equivalente.

ToString()

Convierte el valor numérico de esta instancia en su representación de cadena equivalente.

ToString(IFormatProvider)

Convierte el valor numérico de esta instancia en su representación de cadena equivalente mediante la información de formato específica de la referencia cultural especificada.

ToString(String, IFormatProvider)

Convierte el valor numérico de esta instancia en su representación de cadena equivalente mediante el formato especificado y la información de formato específica de la referencia cultural.

ToString(String)

Convierte el valor numérico de esta instancia en su representación de cadena equivalente mediante el formato especificado.

ToUInt16(Decimal)

Convierte el valor del especificado Decimal en el entero de 16 bits sin signo equivalente.

ToUInt32(Decimal)

Convierte el valor del especificado Decimal en el entero de 32 bits sin signo equivalente.

ToUInt64(Decimal)

Convierte el valor del especificado Decimal en el entero de 64 bits sin signo equivalente.

Truncate(Decimal)

Devuelve los dígitos enteros del especificado Decimal; se descartan los dígitos fraccionarios.

TryFormat(Span<Byte>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Intenta dar formato al valor de la instancia actual como UTF-8 en el intervalo de bytes proporcionado.

TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Intenta dar formato al valor de la instancia decimal actual en el intervalo de caracteres proporcionado.

TryGetBits(Decimal, Span<Int32>, Int32)

Intenta convertir el valor de una instancia especificada de Decimal en su representación binaria equivalente.

TryParse(ReadOnlySpan<Byte>, Decimal)

Intenta convertir un intervalo de caracteres UTF-8 que contiene la representación de cadena de un número en su equivalente decimal firmado.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)

Intenta analizar un intervalo de caracteres UTF-8 en un valor.

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal)

Intenta analizar un intervalo de caracteres UTF-8 en un valor.

TryParse(ReadOnlySpan<Char>, Decimal)

Convierte la representación de intervalo de un número en su Decimal equivalente mediante el formato específico de la referencia cultural. Un valor devuelto indica si la conversión se realizó correctamente o no.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)

Intenta analizar un intervalo de caracteres en un valor.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)

Convierte la representación de intervalo de un número en su Decimal equivalente mediante el estilo y el formato específico de la referencia cultural especificados. Un valor devuelto indica si la conversión se realizó correctamente o no.

TryParse(String, Decimal)

Convierte la representación de cadena de un número en su Decimal equivalente. Un valor devuelto indica si la conversión se realizó correctamente o no.

TryParse(String, IFormatProvider, Decimal)

Intenta analizar una cadena en un valor.

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Convierte la representación de cadena de un número en su Decimal equivalente mediante el estilo y el formato específico de la referencia cultural especificados. Un valor devuelto indica si la conversión se realizó correctamente o no.

Operadores

Nombre Description
Addition(Decimal, Decimal)

Agrega dos valores especificados Decimal .

Decrement(Decimal)

Disminuye el Decimal operando por uno.

Division(Decimal, Decimal)

Divide dos valores especificados Decimal .

Equality(Decimal, Decimal)

Devuelve un valor que indica si dos Decimal valores son iguales.

Explicit(Decimal to Byte)

Define una conversión explícita de a Decimal un entero de 8 bits sin signo.

Explicit(Decimal to Char)

Define una conversión explícita de a Decimal un carácter Unicode.

Explicit(Decimal to Double)

Define una conversión explícita de a Decimal un número de punto flotante de precisión doble.

Explicit(Decimal to Int16)

Define una conversión explícita de a Decimal un entero de 16 bits con signo.

Explicit(Decimal to Int32)

Define una conversión explícita de a Decimal un entero de 32 bits con signo.

Explicit(Decimal to Int64)

Define una conversión explícita de a Decimal un entero de 64 bits con signo.

Explicit(Decimal to SByte)

Define una conversión explícita de a Decimal un entero de 8 bits con signo.

Esta API no es conforme a CLS.

Explicit(Decimal to Single)

Define una conversión explícita de a Decimal un número de punto flotante de precisión única.

Explicit(Decimal to UInt16)

Define una conversión explícita de a Decimal un entero de 16 bits sin signo.

Esta API no es conforme a CLS.

Explicit(Decimal to UInt32)

Define una conversión explícita de a Decimal un entero de 32 bits sin signo.

Esta API no es conforme a CLS.

Explicit(Decimal to UInt64)

Define una conversión explícita de a Decimal un entero de 64 bits sin signo.

Esta API no es conforme a CLS.

Explicit(Double to Decimal)

Define una conversión explícita de un número de punto flotante de precisión doble en un Decimal.

Explicit(Single to Decimal)

Define una conversión explícita de un número de punto flotante de precisión sencilla a .Decimal

GreaterThan(Decimal, Decimal)

Devuelve un valor que indica si un especificado Decimal es mayor que otro especificado Decimal.

GreaterThanOrEqual(Decimal, Decimal)

Devuelve un valor que indica si un especificado Decimal es mayor o igual que otro especificado Decimal.

Implicit(Byte to Decimal)

Define una conversión implícita de un entero de 8 bits sin signo en un Decimal.

Implicit(Char to Decimal)

Define una conversión implícita de un carácter Unicode a .Decimal

Implicit(Int16 to Decimal)

Define una conversión implícita de un entero de 16 bits con signo en un Decimal.

Implicit(Int32 to Decimal)

Define una conversión implícita de un entero de 32 bits con signo en un Decimal.

Implicit(Int64 to Decimal)

Define una conversión implícita de un entero de 64 bits con signo en un Decimal.

Implicit(SByte to Decimal)

Define una conversión implícita de un entero de 8 bits con signo en un Decimal.

Esta API no es conforme a CLS.

Implicit(UInt16 to Decimal)

Define una conversión implícita de un entero de 16 bits sin signo en un Decimal.

Esta API no es conforme a CLS.

Implicit(UInt32 to Decimal)

Define una conversión implícita de un entero de 32 bits sin signo en un Decimal.

Esta API no es conforme a CLS.

Implicit(UInt64 to Decimal)

Define una conversión implícita de un entero de 64 bits sin signo en un Decimal.

Esta API no es conforme a CLS.

Increment(Decimal)

Incrementa el Decimal operando en 1.

Inequality(Decimal, Decimal)

Devuelve un valor que indica si dos Decimal objetos tienen valores diferentes.

LessThan(Decimal, Decimal)

Devuelve un valor que indica si un especificado Decimal es menor que otro especificado Decimal.

LessThanOrEqual(Decimal, Decimal)

Devuelve un valor que indica si un objeto especificado Decimal es menor o igual que otro especificado Decimal.

Modulus(Decimal, Decimal)

Devuelve el resto resultante de dividir dos valores especificados Decimal .

Multiply(Decimal, Decimal)

Multiplica dos valores especificados Decimal .

Subtraction(Decimal, Decimal)

Resta dos valores especificados Decimal .

UnaryNegation(Decimal)

Niega el valor del operando especificado Decimal .

UnaryPlus(Decimal)

Devuelve el valor del Decimal operando (el signo del operando no cambia).

Implementaciones de interfaz explícitas

Nombre Description
IAdditiveIdentity<Decimal,Decimal>.AdditiveIdentity

Obtiene la identidad de suma del tipo actual.

IComparable.CompareTo(Object)

Compara la instancia actual con otro objeto del mismo tipo y devuelve un entero que indica si la instancia actual precede, sigue o se produce en la misma posición en el criterio de ordenación que el otro objeto.

IConvertible.GetTypeCode()

Devuelve para TypeCode esta instancia.

IConvertible.ToBoolean(IFormatProvider)

Para obtener una descripción de este miembro, vea ToBoolean(IFormatProvider).

IConvertible.ToByte(IFormatProvider)

Para obtener una descripción de este miembro, vea ToByte(IFormatProvider).

IConvertible.ToChar(IFormatProvider)

Esta conversión no se admite. Si se intenta usar este método, se produce una InvalidCastExceptionexcepción .

IConvertible.ToDateTime(IFormatProvider)

Esta conversión no se admite. Si se intenta usar este método, se produce una InvalidCastExceptionexcepción .

IConvertible.ToDecimal(IFormatProvider)

Para obtener una descripción de este miembro, vea ToDecimal(IFormatProvider).

IConvertible.ToDouble(IFormatProvider)

Para obtener una descripción de este miembro, vea ToDouble(IFormatProvider).

IConvertible.ToInt16(IFormatProvider)

Para obtener una descripción de este miembro, vea ToInt16(IFormatProvider).

IConvertible.ToInt32(IFormatProvider)

Para obtener una descripción de este miembro, vea ToInt32(IFormatProvider).

IConvertible.ToInt64(IFormatProvider)

Para obtener una descripción de este miembro, vea ToInt64(IFormatProvider).

IConvertible.ToSByte(IFormatProvider)

Para obtener una descripción de este miembro, vea ToSByte(IFormatProvider).

IConvertible.ToSingle(IFormatProvider)

Para obtener una descripción de este miembro, vea ToSingle(IFormatProvider).

IConvertible.ToType(Type, IFormatProvider)

Para obtener una descripción de este miembro, vea ToType(Type, IFormatProvider).

IConvertible.ToUInt16(IFormatProvider)

Para obtener una descripción de este miembro, vea ToUInt16(IFormatProvider).

IConvertible.ToUInt32(IFormatProvider)

Para obtener una descripción de este miembro, vea ToInt32(IFormatProvider).

IConvertible.ToUInt64(IFormatProvider)

Para obtener una descripción de este miembro, vea ToInt64(IFormatProvider).

IDeserializationCallback.OnDeserialization(Object)

Se ejecuta cuando se ha completado la deserialización de un objeto.

IFloatingPoint<Decimal>.GetExponentByteCount()

Obtiene el número de bytes que se escribirán como parte de TryWriteExponentLittleEndian(Span<Byte>, Int32).

IFloatingPoint<Decimal>.GetExponentShortestBitLength()

Obtiene la longitud, en bits, de la representación complementaria de dos más corta del exponente actual.

IFloatingPoint<Decimal>.GetSignificandBitLength()

Obtiene la longitud, en bits, del significado actual.

IFloatingPoint<Decimal>.GetSignificandByteCount()

Obtiene el número de bytes que se escribirán como parte de TryWriteSignificandLittleEndian(Span<Byte>, Int32).

IFloatingPoint<Decimal>.TryWriteExponentBigEndian(Span<Byte>, Int32)

Intenta escribir el exponente actual, en formato big-endian, en un intervalo determinado.

IFloatingPoint<Decimal>.TryWriteExponentLittleEndian(Span<Byte>, Int32)

Intenta escribir el exponente actual, en formato little-endian, en un intervalo determinado.

IFloatingPoint<Decimal>.TryWriteSignificandBigEndian(Span<Byte>, Int32)

Intenta escribir el significado actual, en formato big-endian, en un intervalo determinado.

IFloatingPoint<Decimal>.TryWriteSignificandLittleEndian(Span<Byte>, Int32)

Intenta escribir el significado actual, en formato little-endian, en un intervalo determinado.

IFloatingPointConstants<Decimal>.E

Obtiene la constante ematemática .

IFloatingPointConstants<Decimal>.Pi

Obtiene la constante pimatemática .

IFloatingPointConstants<Decimal>.Tau

Obtiene la constante taumatemática .

IMinMaxValue<Decimal>.MaxValue

Obtiene el valor máximo del tipo actual.

IMinMaxValue<Decimal>.MinValue

Obtiene el valor mínimo del tipo actual.

IMultiplicativeIdentity<Decimal,Decimal>.MultiplicativeIdentity

Obtiene la identidad multiplicativa del tipo actual.

INumber<Decimal>.MaxNumber(Decimal, Decimal)

Compara dos valores con el proceso, que es mayor y devuelve el otro valor si una entrada es NaN.

INumber<Decimal>.MinNumber(Decimal, Decimal)

Compara dos valores con el proceso, que es menor y devuelve el otro valor si una entrada es NaN.

INumberBase<Decimal>.IsComplexNumber(Decimal)

Determina si un valor representa un número complejo.

INumberBase<Decimal>.IsFinite(Decimal)

Determina si un valor es finito.

INumberBase<Decimal>.IsImaginaryNumber(Decimal)

Determina si un valor representa un número imaginario puro.

INumberBase<Decimal>.IsInfinity(Decimal)

Determina si un valor es infinito.

INumberBase<Decimal>.IsNaN(Decimal)

Determina si un valor es NaN.

INumberBase<Decimal>.IsNegativeInfinity(Decimal)

Determina si un valor es infinito negativo.

INumberBase<Decimal>.IsNormal(Decimal)

Determina si un valor es normal.

INumberBase<Decimal>.IsPositiveInfinity(Decimal)

Determina si un valor es infinito positivo.

INumberBase<Decimal>.IsRealNumber(Decimal)

Determina si un valor representa un número real.

INumberBase<Decimal>.IsSubnormal(Decimal)

Determina si un valor es subnormal.

INumberBase<Decimal>.IsZero(Decimal)

Determina si un valor es cero.

INumberBase<Decimal>.MaxMagnitudeNumber(Decimal, Decimal)

Compara dos valores con el proceso que tiene la magnitud mayor y devuelve el otro valor si una entrada es NaN.

INumberBase<Decimal>.MinMagnitudeNumber(Decimal, Decimal)

Compara dos valores con el proceso que tiene la magnitud menor y devuelve el otro valor si una entrada es NaN.

INumberBase<Decimal>.MultiplyAddEstimate(Decimal, Decimal, Decimal)

Calcula una estimación de (left * right) + addend.

INumberBase<Decimal>.One

Obtiene el valor 1 del tipo .

INumberBase<Decimal>.Radix

Obtiene la raíz, o base, para el tipo.

INumberBase<Decimal>.TryConvertFromChecked<TOther>(TOther, Decimal)

Representa un número de punto flotante decimal.

INumberBase<Decimal>.TryConvertFromSaturating<TOther>(TOther, Decimal)

Representa un número de punto flotante decimal.

INumberBase<Decimal>.TryConvertFromTruncating<TOther>(TOther, Decimal)

Representa un número de punto flotante decimal.

INumberBase<Decimal>.TryConvertToChecked<TOther>(Decimal, TOther)

Intenta convertir una instancia del tipo actual en otro tipo, iniciando una excepción de desbordamiento para los valores que se encuentran fuera del intervalo que se puede representar del tipo actual.

INumberBase<Decimal>.TryConvertToSaturating<TOther>(Decimal, TOther)

Intenta convertir una instancia del tipo actual en otro tipo, saturando los valores que se encuentran fuera del intervalo que se puede representar del tipo actual.

INumberBase<Decimal>.TryConvertToTruncating<TOther>(Decimal, TOther)

Intenta convertir una instancia del tipo actual en otro tipo, truncando los valores que se encuentran fuera del intervalo que se puede representar del tipo actual.

INumberBase<Decimal>.Zero

Obtiene el valor 0 del tipo .

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Rellena con SerializationInfo los datos necesarios para serializar el objeto de destino.

ISignedNumber<Decimal>.NegativeOne

Obtiene el valor -1 del tipo .

Se aplica a

Seguridad para subprocesos

Todos los miembros de este tipo son seguros para subprocesos. Los miembros que parecen modificar el estado de instancia devuelven realmente una nueva instancia inicializada con el nuevo valor. Al igual que con cualquier otro tipo, leer y escribir en una variable compartida que contenga una instancia de este tipo debe estar protegida por un bloqueo para garantizar la seguridad de los subprocesos.

Consulte también