跳過到頁腳內容
.NET幫助

C# 數值類型(開發者的工作原理)

在 C# 中,數值類型是一組用於存儲數字的數據類型,可分為兩個主要類別:整數類型和浮點數類型。每個類別都有其獨特的特性和使用案例。

數值類型構成 C# 中許多操作的基礎,從財務和貨幣計算到複雜的算法。 如果您想精通 C#,您需要掌握這些值類型。

整數數據類型

整數數據類型用於存儲整數,可以是有符號的(能夠保存正數和負數)或無符號的(僅能保存正數)。 以下是 C# 中整數類型的細分:

byte

byte 是最小的整數類型。 它是無符號類型,默認值為 0,可存儲從 0 到 255 的值。

sbyte

sbyte 是 byte 的有符號對應類型。 它可以存儲從 -128 到 127 的值,默認值為 0。

short

short 是 16 位有符號整數。 它的範圍比 byte 和 sbyte 大,範圍從 -32,768 到 32,767,默認值為 0。

ushort

ushort 是 short 的無符號對應類型。 它可以保存從 0 到 65,535 的值。默認值也是 0。

int

int 類型是 32 位有符號整數類型,範圍從 -2,147,483,648 到 2,147,483,647。類型為 int 的整數變量的默認值為 0。

uint

uint,全稱為“無符號整數”,可以保存從 0 到 4,294,967,295 的值。默認值為 0。

long

long 是 64 位有符號整數類型,可存儲從 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的值。long 的默認值為 0L。

ulong

ulong 或無符號 long,可以存儲從 0 到 18,446,744,073,709,551,615 的值。默認值為 0UL。

浮點數類型

浮點類型用於存儲帶小數點的數字。 浮點數提供比整數類型更廣泛的值範圍,但精度有所犧牲。 以下是 C# 中的浮點類型:

float

float 是 32 位浮點類型。 它可以表示值從約 1.5 x 10^-45 到 3.4 x 10^38,精度為 7 位數字。 類型為 float 的浮點變量的默認值為 0.0f。

double

double 類型是 64 位浮點類型。 它可以表示值從約 5.0 x 10^-324 到 1.7 x 10^308,精度為 15-16 位數字。 double 的默認值為 0.0d。

decimal

decimal 類型是 128 位數據類型。 它通常用於需要高精度的金融計算。 它可以表示值從約 1.0 x 10^-28 到 7.9 x 10^28,精度為 28-29 位數字。 decimal 類型的默認值為 0.0m。

理解本機大小的整數類型

本機大小的整數類型是在 C# 中具有不同大小的特殊類型,取決於代碼運行的平台。 這些是為了提供最有效的內存使用來存儲整數值而設計的。

IntPtr

IntPtr 是具有指針相同寬度的有符號整數類型。 這意味著它在 32 位平台上是 32 位,在 64 位平台上是 64 位。 這在處理指針或內存相關任務時很有用,IntPtr 的默認值為 0。

UIntPtr

UIntPtr 是 IntPtr 的無符號對應類型,也具有與指針相同的大小。 它在相同平台上提供與 IntPtr 相同的值範圍,但僅對於非負值。 UIntPtr 的默認值也是 0。

在整數和浮點數類型之間轉換

根據使用案例,在代碼中使用正確的數據類型很重要。 在許多情況下,您可能擁有一中類型的值,並需要將其作為另一種類型使用。

隱式轉換會自動發生,當要轉換的值可以無信息丟失地適合到新數據類型中時。 例如,您可以隱式轉換一個 int 為 long,因為 long 可以存儲與 int 相同的值。

顯式轉換,也稱為類型轉換,當存在數據丟失風險時需要進行。 例如,將 long 轉換為 int 可能會導致數據丟失,如果 long 的值大於 int 可以容納的值。

要從一種類型顯式地轉換為另一種類型,可以使用類型轉換運算符()

long myLong = 5000L;
int myInt = (int)myLong; // This is an explicit cast from long to int.
                         // Be cautious if myLong > 2,147,483,647 as it may cause data loss.
long myLong = 5000L;
int myInt = (int)myLong; // This is an explicit cast from long to int.
                         // Be cautious if myLong > 2,147,483,647 as it may cause data loss.
Dim myLong As Long = 5000L
Dim myInt As Integer = CInt(myLong) ' This is an explicit cast from long to int.
						 ' Be cautious if myLong > 2,147,483,647 as it may cause data loss.
$vbLabelText   $csharpLabel

當進行類型轉換時要小心,如果轉換值超出目標類型範圍,這可能會導致意外結果。

使用 IronPDF 應用數值類型

IronPDF 是一款輕量級 .NET PDF 庫,專為 web 開發者設計。 它使讀取、寫入和操作 PDF 文件變得簡單,可以將各種類型的文件轉換為 PDF 內容,您可以將其用於桌面和網頁的 .NET 專案中。 最好的部分 - 在開發環境中試用是免費的。

讓我們來看看如何使用 IronPDF 在 C# 中實現類型。

定位和調整元素大小

在這個例子中,我們將調整頁面上元素的位置和大小。 在 IronPDF 中,坐標是使用浮點類型定義的。

using IronPdf;

var htmlToPdf = new ChromePdfRenderer();
htmlToPdf.RenderingOptions.MarginTop = 50;    // Set top margin in points.
htmlToPdf.RenderingOptions.MarginBottom = 50; // Set bottom margin in points.

var document = htmlToPdf.RenderHtmlAsPdf("<h1>Numeric Types in C# with IronPDF</h1>");
document.SaveAs("C:\\numericTypes.pdf");       // Save the generated PDF to the specified path.
using IronPdf;

var htmlToPdf = new ChromePdfRenderer();
htmlToPdf.RenderingOptions.MarginTop = 50;    // Set top margin in points.
htmlToPdf.RenderingOptions.MarginBottom = 50; // Set bottom margin in points.

var document = htmlToPdf.RenderHtmlAsPdf("<h1>Numeric Types in C# with IronPDF</h1>");
document.SaveAs("C:\\numericTypes.pdf");       // Save the generated PDF to the specified path.
Imports IronPdf

Private htmlToPdf = New ChromePdfRenderer()
htmlToPdf.RenderingOptions.MarginTop = 50 ' Set top margin in points.
htmlToPdf.RenderingOptions.MarginBottom = 50 ' Set bottom margin in points.

Dim document = htmlToPdf.RenderHtmlAsPdf("<h1>Numeric Types in C# with IronPDF</h1>")
document.SaveAs("C:\numericTypes.pdf") ' Save the generated PDF to the specified path.
$vbLabelText   $csharpLabel

輸出PDF文件

理解 C# 數字類型,圖像 #1

結論

從基本計算到自定義生成的 PDF 佈局,數字類型是有效和高效 C# 編程的重要組成部分。 它們是數據操作、算法設計和創建高質量 PDF 文檔的構建塊。

想動手試試 IronPDF 嗎? 您可以從我們的30 天免費試用開始。 它的開發用途完全免費,因此您可以真正看到它的作用。 如果您喜歡看到的內容,IronPDF 起價僅為liteLicense。 想要更大的優惠,看看Iron Suite,您可以以兩個的價格獲得所有九個 Iron Software 工具。 祝您編程愉快!

理解 C# 數字類型,圖像 #2

常見問題解答

如何使用 C# 將 HTML 內容轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法,將 HTML 內容轉換為 PDF,在 C# 中將 HTML 字串直接轉換為 PDF 文件。此外,您還可以使用 RenderHtmlFileAsPdf 將 HTML 文件進行轉換。

C# 中整數類型和浮點類型有何主要區別?

在 C# 中,整數類型用於整數,包括 byte、int 和 long 類型。浮點類型如 float 和 double 處理小數點數字,範圍更廣但精度較低。

為什麼在 C# 中會選擇使用十進制類型而非雙精度類型?

十進制類型提供更高的精度,因此在需要精確小數表示的財務計算中是理想的選擇。它可以表示 28-29 位數的精度,而雙精度類型只有 15-16 位。

原生大小的整數類型如何使 C# 開發人員受益?

像 IntPtr 和 UIntPtr 這樣的原生大小整數類型會根據平台調整其大小,提供內存效率,用於平台特定情況下處理內存地址和指針等任務。

數值類型在 .NET 的 PDF 生成中扮演什麼角色?

.NET 的數值類型在 PDF 生成中對定義 PDF 元素的版式至關重要。例如,可以使用浮點數字指定 PDF 頁面中文字和圖像的精確大小和位置,配合 IronPDF 使用。

什麼是 C# 中的隱式轉換和顯式轉換?

C# 中的隱式轉換發生在目的類型可以在不丟失數據的情況下存儲源值時。顯式轉換或類型強制(casting)需要手動干預(通常使用強制運算符),因為可能會有數據丟失。

如何評估適合我項目的 .NET PDF 庫?

您可以利用 IronPDF 提供的 30 天免費試用來評估 .NET PDF 庫。這允許您在開發期間探索其功能,然後決定是否購買許可。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。