.NET 中的数字Numerics in .NET

.NET 支持带有符号和无符号的 8 位、16 位、32 位和 64 位整数类型,如下表所示:

每个整数类型都支持一组标准算术运算符。System.Math 类为更广泛的数学函数集提供方法。

还可以使用 类对整数值中的单个位进行运算。

备注

无符号整数类型不符合 CLS。有关详细信息,请参阅 Language Independence and Language-Independent Components

BigIntegerBigInteger

结构是不可变类型,表示其值没有理论上限或下限的任意大型整数。BigInteger 类型的方法几乎与其他整数类型的方法一致。

.NET 包括三个基元浮点类型,如下表所列:

类型大小(以字节为单位)大致范围精度
4±1.5 x 10−45 至 ±3.4 x 1038大约 6-9 位数字
System.Double8±5.0 × 10−324 到 ±1.7 × 10308大约 15-17 位数字
16±1.0 x 10-28 至 ±7.9228 x 102828-29 位

每个浮点类型都支持一组标准的算术运算符。System.Math 类为更广泛的数学函数集提供方法。.NET Core 2.0 及更高版本包含 类,该类提供接受 Single 类型的参数的方法。

还可以使用 类对 Double 和 值中的单个位进行运算。System.Decimal 结构具有自己处理十进制值单个位的方法( 和 Decimal.Decimal(Int32[]))以及一套执行其他数学运算的方法。

Single 类型旨在用于本质上不精确的值(例如,两颗行星之间的距离)和无需高度精确和舍入误差小的应用程序。在需要较高准确度和尽量减小舍入误差的情况下,应使用 类型。

备注

Decimal 类型不会消除对舍入的要求。相反,它最大限度地减少了因舍入而导致的错误。

ComplexComplex

结构表示复数,即带实数部分和虚数部分的数字。此类型支持一套标准的算术、比较、相等、显式和隐式转换运算符,以及数学、代数和三角方法。

System.Numerics 命名空间包含一组启用了 .NET SIMD 的类型。SIMD (Single Instruction Multiple Data) 操作可以在硬件级别并行化。这可以增加向量化计算的吞吐量,这在数学、科学和图形应用中很常见。

  • Vector3 和 类型,用于表示具有 2、3 和 4 Single 值的向量。

  • 两个矩阵类型:(表示 3x2 矩阵)和 Matrix4x4(表示 4x4 矩阵)。

  • 类型,表示一个用于对三维物理旋转进行编码的向量。

  • Vector 类型,表示指定数字类型的向量,并提供受益于 SIMD 支持的一组广泛的运算符。 实例的计数是固定的,但其值 Vector.Count 取决于执行代码的计算机的 CPU。

备注

类型未包含在 .NET Framework 中。必须安装 System.Numerics.Vectors NuGet 包才能访问此类型。

请参阅See also