跳至頁尾內容
開發者更新

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的值,精度為七位數字。 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 轉換為 a 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 程式庫,專為網頁開發者設計。 它使閱讀、寫入和操作 PDF 文件變得輕而易舉,能夠將各型別的文件轉換為 PDF 內容,您可以在您的 .NET 專案中使用它,無論是桌面還是網頁。 最好的部分 - 它在開發環境中是免費試用的。

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

定位和調整元素大小

在這個範例中,我們將調整頁面上元素的位置和大小。 在 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,該方法可以直接將 HTML 字串轉換為 PDF 文件。此外,您可以使用 RenderHtmlFileAsPdf 將 HTML 檔案轉換。

C# 中整數型別和浮點數型別之間的主要差異是什麼?

在 C# 中,整數型別用於整數,包含 byte、int 和 long 等型別。浮點數型別如 float 和 double 處理含小數的數字,提供較大的範圍但較低的精度。

為什麼我要在 C# 中使用 decimal 型別而不是 double?

decimal 型別提供更高的精度,非常適合需要精確小數表示的財務計算。它可以精確表示 28-29 位數字,相較於 double 的 15-16 位數字。

本機尺寸整數型別如何使 C# 開發者受惠?

像 IntPtr 和 UIntPtr 這種本機尺寸整數型別根據平台調整其大小,在處理如記憶體地址和指標的特定平台場景中,提供了記憶體效率。

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

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

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

在 C# 中,隱式轉換發生於目的型別可以在不丟失資料的情況下儲存源值。顯式轉換,或稱 casting,需要手動干預,通常使用轉型運算子,因為可能會存在資料丟失。

如何評估一個 .NET PDF 程式庫是否適合我的專案?

您可以利用類似 IronPDF 的 30 天免費試用來評估 .NET PDF 程式庫。這允許您在購買授權前,在開發過程中探索其功能。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

Jacob擁有曼徹斯特大學的土木工程一等榮譽學士學位(BEng),於1998-2001年之間獲得。在1999年於倫敦創辦他的第一家軟體公司並於2005年建立了他的第一批.NET元組件後,他專注於解決Microsoft生態系統中的複雜問題。

他的旗艦IronPDF和Iron Suite .NET程式庫在全球獲得了超過3000萬次NuGet安裝依據,他的基礎程式碼基繼續支援著世界各地開發者使用的工具。擁有25年的商業經驗和41年的程式設計專業知識,他仍專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話