跳至页脚内容
.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或无符号长整数,可以存储从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库。 它使读取、编写和操作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 方法在 C# 中将 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 元素的布局是至关重要的。例如,浮点数可以使用 IronPDF 指定 PDF 页面上文本和图像的精确大小和位置。

C# 中的隐式和显式转换是什么?

C# 中的隐式转换在目标类型可以无数据丢失地存储源值时发生。显式转换(或类型转换)需要手动干预,通常使用转换运算符,因为可能会导致数据丢失。

如何评估适合我项目的 .NET PDF 库?

您可以利用 IronPDF 提供的 30 天免费试用来评估 .NET PDF 库。这允许您在开发期间探索其功能,在决定购买许可证之前。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。