本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

Decimal 结构

 

表示十进制数。

命名空间:   System
程序集:  mscorlib(位于 mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct Decimal : IFormattable, IComparable, IConvertible, 
	IDeserializationCallback, IComparable<decimal>, IEquatable<decimal>

名称说明
System_CAPS_pubmethodDecimal(Double)

Decimal 的新实例初始化为指定的双精度浮点数的值。

System_CAPS_pubmethodDecimal(Int32)

Decimal 的新实例初始化为指定的 32 位有符号整数的值。

System_CAPS_pubmethodDecimal(Int32, Int32, Int32, Boolean, Byte)

用指定实例构成部分的参数来初始化 Decimal 的新实例。

System_CAPS_pubmethodDecimal(Int32[])

Decimal 的新实例初始化为以二进制表示的、包含在指定数组中的十进制值。

System_CAPS_pubmethodDecimal(Int64)

Decimal 的新实例初始化为指定的 64 位有符号整数的值。

System_CAPS_pubmethodDecimal(Single)

Decimal 的新实例初始化为指定的单精度浮点数的值。

System_CAPS_pubmethodDecimal(UInt32)

Decimal 的新实例初始化为指定的 32 位无符号整数的值。

System_CAPS_pubmethodDecimal(UInt64)

Decimal 的新实例初始化为指定的 64 位无符号整数的值。

名称说明
System_CAPS_pubmethodSystem_CAPS_staticAdd(Decimal, Decimal)

将两个指定的 Decimal 值相加。

System_CAPS_pubmethodSystem_CAPS_staticCeiling(Decimal)

返回大于或等于指定的十进制数的最小整数值。

System_CAPS_pubmethodSystem_CAPS_staticCompare(Decimal, Decimal)

比较两个指定的 Decimal 值。

System_CAPS_pubmethodCompareTo(Decimal)

将此实例与指定的 Decimal 对象进行比较并返回一个对二者的相对值的比较。

System_CAPS_pubmethodCompareTo(Object)

将此实例与指定对象进行比较并返回一个对二者的相对值的比较。

System_CAPS_pubmethodSystem_CAPS_staticDivide(Decimal, Decimal)

将两个指定的 Decimal 值相除。

System_CAPS_pubmethodEquals(Decimal)

返回一个值,该值指示此实例和指定的 Decimal 对象是否表示相同的值。

System_CAPS_pubmethodSystem_CAPS_staticEquals(Decimal, Decimal)

返回一个值,该值指示 Decimal 的两个指定实例是否表示同一个值。

System_CAPS_pubmethodEquals(Object)

返回一个值,该值指示此实例和指定的 Object 是否表示相同的类型和值。(覆盖 ValueType.Equals(Object)。)

System_CAPS_pubmethodSystem_CAPS_staticFloor(Decimal)

将指定的 Decimal 数字向负无穷方向舍入为最接近的整数。

System_CAPS_pubmethodSystem_CAPS_staticFromOACurrency(Int64)

将指定的 64 位有符号整数(它包含 OLE 自动化货币值)转换为等效的 Decimal 值。

System_CAPS_pubmethodSystem_CAPS_staticGetBits(Decimal)

Decimal 的指定实例的值转换为其等效的二进制表示形式。

System_CAPS_pubmethodGetHashCode()

返回此实例的哈希代码。(覆盖 ValueType.GetHashCode()。)

System_CAPS_pubmethodGetType()

获取当前实例的 Type(继承自 Object。)

System_CAPS_pubmethodGetTypeCode()

返回值类型 TypeCodeDecimal

System_CAPS_pubmethodSystem_CAPS_staticMultiply(Decimal, Decimal)

两个指定的 Decimal 值相乘。

System_CAPS_pubmethodSystem_CAPS_staticNegate(Decimal)

返回指定的 Decimal 值乘以 -1 的结果。

System_CAPS_pubmethodSystem_CAPS_staticParse(String)

将数字的字符串表示形式转换为它的等效 Decimal 表示形式。

System_CAPS_pubmethodSystem_CAPS_staticParse(String, IFormatProvider)

使用指定的区域性特定格式信息将数字的字符串表示形式转换为其 Decimal 等效项。

System_CAPS_pubmethodSystem_CAPS_staticParse(String, NumberStyles)

将指定样式的数字的字符串表示形式转换为它的等效 Decimal

System_CAPS_pubmethodSystem_CAPS_staticParse(String, NumberStyles, IFormatProvider)

使用指定样式和区域性特定格式将数字的字符串表示形式转换为其 Decimal 等效项。

System_CAPS_pubmethodSystem_CAPS_staticRemainder(Decimal, Decimal)

计算两个 Decimal 值相除后的余数。

System_CAPS_pubmethodSystem_CAPS_staticRound(Decimal)

将小数值舍入到最接近的整数。

System_CAPS_pubmethodSystem_CAPS_staticRound(Decimal, Int32)

Decimal 值舍入到指定的小数位数。

System_CAPS_pubmethodSystem_CAPS_staticRound(Decimal, Int32, MidpointRounding)

将小数值舍入到指定精度。 一个参数,指定当一个值正好处于另两个数中间时如何舍入这个值。

System_CAPS_pubmethodSystem_CAPS_staticRound(Decimal, MidpointRounding)

将小数值舍入到最接近的整数。 一个参数,指定当一个值正好处于另两个数中间时如何舍入这个值。

System_CAPS_pubmethodSystem_CAPS_staticSubtract(Decimal, Decimal)

从一个 Decimal 值中减去指定的另一个值。

System_CAPS_pubmethodSystem_CAPS_staticToByte(Decimal)

将指定的 Decimal 的值转换为等效的 8 位无符号整数。

System_CAPS_pubmethodSystem_CAPS_staticToDouble(Decimal)

将指定的 Decimal 的值转换为等效的双精度浮点数。

System_CAPS_pubmethodSystem_CAPS_staticToInt16(Decimal)

将指定的 Decimal 值转换为等效的 16 位有符号整数。

System_CAPS_pubmethodSystem_CAPS_staticToInt32(Decimal)

将指定的 Decimal 值转换为等效的 32 位有符号整数。

System_CAPS_pubmethodSystem_CAPS_staticToInt64(Decimal)

将指定的 Decimal 值转换为等效的 64 位有符号整数。

System_CAPS_pubmethodSystem_CAPS_staticToOACurrency(Decimal)

将指定的 Decimal 值转换为等效的 OLE 自动化货币值,该值包含在一个 64 位有符号整数中。

System_CAPS_pubmethodSystem_CAPS_staticToSByte(Decimal)

将指定的 Decimal 值转换为等效的 8 位有符号整数。

System_CAPS_pubmethodSystem_CAPS_staticToSingle(Decimal)

将指定的 Decimal 的值转换为等效的单精度浮点数。

System_CAPS_pubmethodToString()

将此实例的数值转换为其等效的字符串表示形式。(覆盖 ValueType.ToString()。)

System_CAPS_pubmethodToString(IFormatProvider)

使用指定的区域性特定格式信息,将此实例的数值转换为它的等效字符串表示形式。

System_CAPS_pubmethodToString(String)

使用指定的格式,将此实例的数值转换为它的等效字符串表示形式。

System_CAPS_pubmethodToString(String, IFormatProvider)

使用指定的格式和区域性特定格式信息,将此实例的数值转换为它的等效字符串表示形式。

System_CAPS_pubmethodSystem_CAPS_staticToUInt16(Decimal)

将指定的 Decimal 的值转换为等效的 16 位无符号整数。

System_CAPS_pubmethodSystem_CAPS_staticToUInt32(Decimal)

将指定的 Decimal 的值转换为等效的 32 位无符号整数。

System_CAPS_pubmethodSystem_CAPS_staticToUInt64(Decimal)

将指定的 Decimal 的值转换为等效的 64 位无符号整数。

System_CAPS_pubmethodSystem_CAPS_staticTruncate(Decimal)

返回指定的 Decimal 的整数位,所有小数位均被放弃。

System_CAPS_pubmethodSystem_CAPS_staticTryParse(String, Decimal)

将数字的字符串表示形式转换为它的等效 Decimal 表示形式。 一个指示转换是否成功的返回值。

System_CAPS_pubmethodSystem_CAPS_staticTryParse(String, NumberStyles, IFormatProvider, Decimal)

使用指定样式和区域性特定格式将数字的字符串表示形式转换为其 Decimal 等效项。 一个指示转换是否成功的返回值。

名称说明
System_CAPS_pubfieldSystem_CAPS_staticMaxValue

表示 Decimal 的最大可能值。 该字段是常数且为只读。

System_CAPS_pubfieldSystem_CAPS_staticMinusOne

表示数字负一 (-1)。

System_CAPS_pubfieldSystem_CAPS_staticMinValue

表示 Decimal 的最小可能值。 该字段是常数且为只读。

System_CAPS_pubfieldSystem_CAPS_staticOne

表示数字一 (1)。

System_CAPS_pubfieldSystem_CAPS_staticZero

表示数字零 (0)。

名称说明
System_CAPS_puboperatorSystem_CAPS_staticAddition(Decimal, Decimal)

将两个指定的 Decimal 值相加。

System_CAPS_puboperatorSystem_CAPS_staticDecrement(Decimal)

Decimal 操作数减 1。

System_CAPS_puboperatorSystem_CAPS_staticDivision(Decimal, Decimal)

将两个指定的 Decimal 值相除。

System_CAPS_puboperatorSystem_CAPS_staticEquality(Decimal, Decimal)

返回一个值,该值指示两个 Decimal 值是否相等。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Decimal to Byte)

定义从 Decimal 到 8 位无符号整数的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Decimal to Char)

定义从 Unicode 字符到 Decimal 的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Decimal to Double)

定义从 Decimal 到双精度浮点数的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Decimal to Int16)

定义从 Decimal 到 16 位有符号整数的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Decimal to Int32)

定义从 Decimal 到 32 位有符号整数的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Decimal to Int64)

定义从 Decimal 到 64 位有符号整数的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Decimal to SByte)

定义从 Decimal 到 8 位有符号整数的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Decimal to Single)

定义从 Decimal 到单精度浮点数的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Decimal to UInt16)

定义从 Decimal 到 16 位无符号整数的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Decimal to UInt32)

定义从 Decimal 到 32 位无符号整数的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Decimal to UInt64)

定义从 Decimal 到 64 位无符号整数的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Double to Decimal)

定义从双精度浮点数到 Decimal 的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticExplicit(Single to Decimal)

定义从单精度浮点数到 Decimal 的显式转换。

System_CAPS_puboperatorSystem_CAPS_staticGreaterThan(Decimal, Decimal)

返回一个值,该值指示指定的 Decimal 是否大于另一个指定的 Decimal

System_CAPS_puboperatorSystem_CAPS_staticGreaterThanOrEqual(Decimal, Decimal)

返回一个值,该值指示指定的 Decimal 是否大于等于另一个指定的 Decimal

System_CAPS_puboperatorSystem_CAPS_staticImplicit(Byte to Decimal)

定义从 8 位无符号整数到 Decimal 的隐式转换。

System_CAPS_puboperatorSystem_CAPS_staticImplicit(Char to Decimal)

定义从 Unicode 字符到 Decimal 的隐式转换。

System_CAPS_puboperatorSystem_CAPS_staticImplicit(Int16 to Decimal)

定义从 16 位有符号整数到 Decimal 的隐式转换。

System_CAPS_puboperatorSystem_CAPS_staticImplicit(Int32 to Decimal)

定义从 32 位带符号整数到 Decimal 的隐式转换。

System_CAPS_puboperatorSystem_CAPS_staticImplicit(Int64 to Decimal)

定义从 64 位带符号整数到 Decimal 的隐式转换。

System_CAPS_puboperatorSystem_CAPS_staticImplicit(SByte to Decimal)

定义从 8 位带符号整数到 Decimal 值的隐式转换。

System_CAPS_puboperatorSystem_CAPS_staticImplicit(UInt16 to Decimal)

定义从 16 位无符号整数到 Decimal 的隐式转换。

System_CAPS_puboperatorSystem_CAPS_staticImplicit(UInt32 to Decimal)

定义从 32 位无符号整数到 Decimal 的隐式转换。

System_CAPS_puboperatorSystem_CAPS_staticImplicit(UInt64 to Decimal)

定义 64 位无符号整数向 Decimal 的隐式转换。

System_CAPS_puboperatorSystem_CAPS_staticIncrement(Decimal)

Decimal 操作数增加 1。

System_CAPS_puboperatorSystem_CAPS_staticInequality(Decimal, Decimal)

返回一个值,该值指示两个 Decimal 对象是否具有不同的值。

System_CAPS_puboperatorSystem_CAPS_staticLessThan(Decimal, Decimal)

返回一个值,该值指示指定的 Decimal 是否小于另一个指定的 Decimal

System_CAPS_puboperatorSystem_CAPS_staticLessThanOrEqual(Decimal, Decimal)

返回一个值,该值指示指定的 Decimal 是小于还是等于另一个指定的 Decimal

System_CAPS_puboperatorSystem_CAPS_staticModulus(Decimal, Decimal)

返回两个指定 Decimal 值相除所得的余数。

System_CAPS_puboperatorSystem_CAPS_staticMultiply(Decimal, Decimal)

两个指定的 Decimal 值相乘。

System_CAPS_puboperatorSystem_CAPS_staticSubtraction(Decimal, Decimal)

将两个指定的 Decimal 值相减。

System_CAPS_puboperatorSystem_CAPS_staticUnaryNegation(Decimal)

对指定 Decimal 操作数的值求反。

System_CAPS_puboperatorSystem_CAPS_staticUnaryPlus(Decimal)

返回 Decimal 操作数的值(操作数符号不变)。

名称说明
System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToBoolean(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToBoolean

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToByte(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToByte

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToChar(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 不支持此转换。 尝试使用此方法将引发 InvalidCastException

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDateTime(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 不支持此转换。 尝试使用此方法将引发 InvalidCastException

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDecimal(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToDecimal

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDouble(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToDouble

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt16(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToInt16

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt32(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToInt32

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt64(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToInt64

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSByte(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToSByte

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSingle(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToSingle

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToType(Type, IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToType

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt16(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToUInt16

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt32(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToInt32

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt64(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToInt64

System_CAPS_pubinterfaceSystem_CAPS_privmethodIDeserializationCallback.OnDeserialization(Object)

此 API 支持 产品 基础结构,不应从代码直接使用。 在对象的反序列化完成时运行。

Decimal 值类型表示十进制数范围从正 79228162514264337593543950335 负的 79228162514264337593543950335。 Decimal 值类型是适合于需要大量的重要的整数和小数位数和无舍入误差的财务计算。 Decimal 类型并不能排除舍入的必要性。 相反,它最大程度减少由于舍入导致的错误。 例如,下面的代码生成而不是 1 0.9999999999999999999999999999 的结果。

decimal dividend = Decimal.One;
decimal divisor = 3;
// The following displays 0.9999999999999999999999999999 to the console
Console.WriteLine(dividend/divisor * divisor);   

当将除法和乘法的结果传递给 Round 方法,结果不会有损失精度,如以下代码所示。

decimal dividend = Decimal.One;
decimal divisor = 3;
// The following displays 1.00 to the console
Console.WriteLine(Math.Round(dividend/divisor * divisor, 2));   

十进制数字是一个符号、 其中的值中的每一位范围从 0 到 9 的数字值和一个比例因子,指示的位置进浮动小数点分隔的数字值的整数和小数部分组成的浮点值。

二进制表示形式 Decimal 1 位符号、 96 位整数和一个用作除数的 96 位整数,并指定它的哪一部分是小数部分的比例因子的值组成。 缩放系数是隐式数字 10,从 0 到 28 之间的指数。 因此,二进制表示形式 Decimal 值窗体中,((-296 为 296) / 10(0 到 28)),其中-(296-1) 等同于 MinValue, ,和 296-1 等同于 MaxValue 有关更多信息的二进制表示形式 Decimal 值和示例,请参阅 Decimal(Int32[]) 构造函数和 GetBits 方法。

比例因子还保留在任何尾随零 Decimal 数。 尾随零不会影响值 Decimal 算术或比较运算中数字。 但是,尾随零可能会泄露通过 ToString 方法,如果应用正确的格式字符串。

此类型提供转换的方法 Decimal 值间来回 SByte, ,Int16, ,Int32, ,Int64, ,Byte, ,UInt16, ,UInt32, ,和 UInt64 值。 从对这些整型转换 Decimal 扩大转换,永远不会丢失信息或引发异常。

从转换 Decimal 到任何整数类型属于收缩转换,舍入 Decimal 到最近的接近零的整数值的值。 某些语言中的,如 C# 中,还支持的转换 Decimal 值复制到 Char 值。 如果这些转换的结果不能以目标类型表示 OverflowException 则会引发异常。

Decimal 类型还提供了将转换的方法 Decimal 值间来回 SingleDouble 值。 从转换 DecimalSingleDouble 属于收缩转换,可能会丢失精度,但不是有关信息的量值的转换后的值。 转换不会引发异常。

从转换 SingleDoubleDecimal 引发 OverflowException 异常,如果转换的结果不能表示为 Decimal

Decimal 类型支持标准的数学运算,例如加法、 减法、 除法、 乘法和一元求反。 您还可以直接使用的二进制表示形式 Decimal 值通过调用 GetBits 方法。

比较两个 Decimal 值,您可以使用标准数值的比较运算符,也可以调用 CompareToEquals 方法。

您还可以调用的成员 Math 类来执行各种数值操作,包括获得一个数,确定两个最大或最小值的绝对值 Decimal 值,获取数字的符号和舍入数字。

以下代码示例演示了 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";
	}
}

通用 Windows 平台
自 8 起可用
.NET Framework
自 1.1 起可用
可移植类库
可移植 .NET 平台 中受支持
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
Windows Phone
自 8.1 起可用

此类型的所有成员都是线程安全。 实际上,看起来要修改实例状态的成员返回使用新值进行初始化的新实例。 作为与任何其他类型,读取和写入对共享变量,其中包含此类型的实例必须保护锁来保证线程安全性。

System_CAPS_caution小心

分配此类型的实例不是线程安全的所有硬件平台上因为该实例的二进制表示形式可能太大,无法在单个原子操作中分配。

返回页首
显示: