共用方式為


.NET 中的數值

.NET 提供數值整數和浮點基本類型的範圍,以及:

整數類型

.NET 支援帶正負號和不帶正負號的 8 位、16 位、32 位、64 位和 128 位整數類型,如下表所列。

帶正負號的整數類型

類型 (位元組) 的大小 最小值 最大值
System.Int16 2 -32,768 32,767
System.Int32 4 -2,147,483,648 2,147,483,647
System.Int64 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807
System.Int128 16 •170,141,183,460,469,231,731,687,303,715,884,105,728 170,141,183,460,469,231,731,687,303,715,884,105,727
System.SByte 1 -128 127
System.IntPtr (在 32 位元進程中) 4 -2,147,483,648 2,147,483,647
System.IntPtr (在 64 位進程中) 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807

不帶正負號的整數類型

類型 (位元組) 的大小 最小值 最大值
System.Byte 1 0 255
System.UInt16 2 0 65,535
System.UInt32 4 0 4,294,967,295
System.UInt64 8 0 18,446,744,073,709,551,615
System.UInt128 16 0 340,282,366,920,938,463,463,374,607,431,768,211,455
System.UIntPtr (在 32 位元進程中) 4 0 4,294,967,295
System.UIntPtr (在 64 位進程中) 8 0 18,446,744,073,709,551,615

每個整數類型都支援一組標準算術運算元。 類別 System.Math 提供一組更廣泛的數學函式方法。

您也可以使用 System.BitConverter 類別來處理整數值中的個別位。

備註

不帶正負號的整數類型不符合CLS標準。 如需詳細資訊,請參閱 語言獨立和語言獨立元件

BigInteger

結構 System.Numerics.BigInteger 是不可變的類型,代表任意大整數,其理論上的值沒有上限或下限。 型別 BigInteger 的方法與其他整數型別的方法密切相似。

浮點類型

.NET 包含下列浮點類型:

類型 (位元組) 的大小 近似範圍 原始? 註釋
System.Half 2 ±65504 .NET 5 中引進
System.Single 4 ±3.4 × 1038 是的
System.Double 8 ±1.7 × 10308 是的
System.Decimal 16 ±7.9228 x 1028

HalfSingleDouble 類型支援代表非數位和無限大的特殊值。 例如, Double 型別會提供下列值: Double.NaNDouble.NegativeInfinityDouble.PositiveInfinity。 您可以使用 Double.IsNaNDouble.IsInfinityDouble.IsPositiveInfinityDouble.IsNegativeInfinity 方法來測試這些特殊值。

每個浮點類型都支援一組標準算術運算元。 類別 System.Math 提供一組更廣泛的數學函式方法。 .NET Core 2.0 和更新版本包含 System.MathF 類別,提供接受 Single 型別之參數的方法。

您也可以使用 Double 類別來處理 SingleHalfSystem.BitConverter 中的個別位元值。 結構 System.Decimal 擁有一些方法,包括 Decimal.GetBitsDecimal(Int32[]),用來處理十進位值的個別位元和執行額外的數學運算。

DoubleSingleHalf 類型旨在用於那些本質上不精確的值(例如,兩顆星之間的距離),以及不需要高精確度和小捨入誤差的情況。 如需更高的精確度且應最小化捨入錯誤,請使用 System.Decimal 類型。

備註

Decimal 類型不會消除捨入的需求。 相反地,它會減少因四捨五入所造成的錯誤。

複雜

結構 System.Numerics.Complex 代表複數,也就是具有實數部分和虛數部分的數位。 它支援一組標準的算術、比較、相等、明確和隱含轉換運算元,以及數學、代數和三角方法。

啟用 SIMD 的類型

命名空間 System.Numerics 包含一組已啟用 .NET SIMD 的類型。 SIMD (單一指令多個資料) 作業可以在硬體層級平行處理。 這會增加向量化計算的輸送量,這在數學、科學和圖形應用程式中很常見。

.NET 支援 SIMD 的類型包括以下項目:

  • Vector2Vector3Vector4 型別,表示具有 2、3 和 4 Single 值的向量。

  • 兩種矩陣類型, Matrix3x2代表 3x2 矩陣,而 Matrix4x4代表 4x4 矩陣。

  • Plane 型別,代表三維空間中的一個平面。

  • Quaternion 型,表示用來編碼三維物理旋轉的向量。

  • 類型 Vector<T> 表示指定數值類型的向量,並提供一組廣泛的運算子,得益於SIMD支持。 實例的計數是固定的 Vector<T> ,但其值 Vector<T>.Count 取決於執行程式代碼的計算機 CPU。

    備註

    類型 Vector<T> 隨附於 .NET Core 和 .NET 5+,但不包含 .NET Framework。 如果您使用 .NET Framework,請安裝 System.Numerics.Vectors NuGet 套件以取得此類型的存取權。

已啟用 SIMD 的類型是透過這類方式實作,以便與非 SIMD 啟用的硬體或 JIT 編譯程式搭配使用。 若要利用 SIMD 指令,您的 64 位應用程式必須由使用 RyuJIT 編譯程式的運行時間執行,此編譯程式包含在 .NET Core 和 .NET Framework 4.6 和更新版本中。 它會在以 64 位處理器為目標時新增 SIMD 支援。

如需詳細資訊,請參閱 使用SIMD加速數值類型

另請參閱