.NET 帮助

C# 将 double 转换为 int(开发人员如何操作)

发布 2024年四月29日
分享:

用 C# 将二进制舍入为整数是编程中经常出现的一个基本任务,特别是当计算产生 double 值但需要整数值进行进一步操作时。 该过程包括将可能包含小数位的双精度值转换为最接近的整数。 这可以通过各种方法完成,每种方法都遵循指定的舍入约定。

在本指南中,我们将探讨在C#中用于将双精度值舍入到整数位的不同策略和函数,帮助开发人员了解每种方法的含义和应用。 我们还将探讨IronPDF .NET PDF 库该工具是一个功能强大的工具,用于用 C# 创建 PDF 文档。

理解Round方法

在C#中,Math.Round方法是将双精度值四舍五入到最接近整数的主要工具。 此函数将双精度值舍入到最接近的整数值,通过重载提供了高程度的控制,允许指定小数位的数量和舍入策略。 例如,当一个双精度值正好位于两个整数之间的一半时,舍入规则决定该值是向上舍入还是向下舍入。

这是 Math.Round 方法的一个基本示例:

public static void Main()
{
    double myDouble = 9.5;
    int myInt = (int)Math.Round(myDouble);
    Console.WriteLine("The rounded integer value is: " + myInt);
}
public static void Main()
{
    double myDouble = 9.5;
    int myInt = (int)Math.Round(myDouble);
    Console.WriteLine("The rounded integer value is: " + myInt);
}
Imports System

Public Shared Sub Main()
	Dim myDouble As Double = 9.5
	Dim myInt As Integer = CInt(Math.Truncate(Math.Round(myDouble)))
	Console.WriteLine("The rounded integer value is: " & myInt)
End Sub
VB   C#

在此源代码中,使用 Math.Round 将双精度值 9.5 四舍五入到最接近的整数。 该方法返回 10,因为它四舍五入为最接近的数字。 这是在对正值进行舍入时的预期结果,这些正值正好位于两个整数值之间。

取整和显式转换

在C#中将double值转换为整数值的另一种常见方法是通过显式转换。 显式转换涉及将 double 直接转换为 int,这会截断任何小数位。 这意味着它不会四舍五入到最接近的整数,而是舍入到最接近的小整数。 当您只需要删除小数部分而不考虑最接近的整数值时,此方法很有用。

以下是你如何进行显式转换的方法:

public static void Main()
{
    double myDouble = 9.9;
    int myInt = (int)myDouble;
    Console.WriteLine("The integer value after explicit conversion is: " + myInt);
}
public static void Main()
{
    double myDouble = 9.9;
    int myInt = (int)myDouble;
    Console.WriteLine("The integer value after explicit conversion is: " + myInt);
}
Imports System

Public Shared Sub Main()
	Dim myDouble As Double = 9.9
	Dim myInt As Integer = CInt(Math.Truncate(myDouble))
	Console.WriteLine("The integer value after explicit conversion is: " & myInt)
End Sub
VB   C#

在上面的例子中,输出将是 9,因为显式转换只是简单地去掉了 9.9 的小数部分,导致一个较小的整数。 这种方法很快,但在需要根据指定的舍入规则进行精确舍入时可能不合适。

使用其他方法满足特定的舍入需求

除了 Math.Round 和显式转换外,C# 提供了其他四舍五入双精度值的方法,以满足不同的需求。 例如,Math.FloorMath.Ceiling 提供了将双精度值分别始终向较小整数或较大整数舍入的选项。 Math.Floor 特别适用于始终向下舍入,即使是负值也一样,而 Math.Ceiling 确保向上舍入。

让我们看看这些方法的示例:

public static void Main()
{
    double myDouble = 9.2;
    int floorInt = (int)Math.Floor(myDouble);
    int ceilingInt = (int)Math.Ceiling(myDouble);
    Console.WriteLine("Rounded down: " + floorInt);
    Console.WriteLine("Rounded up: " + ceilingInt);
}
public static void Main()
{
    double myDouble = 9.2;
    int floorInt = (int)Math.Floor(myDouble);
    int ceilingInt = (int)Math.Ceiling(myDouble);
    Console.WriteLine("Rounded down: " + floorInt);
    Console.WriteLine("Rounded up: " + ceilingInt);
}
Imports System

Public Shared Sub Main()
	Dim myDouble As Double = 9.2
	Dim floorInt As Integer = CInt(Math.Truncate(Math.Floor(myDouble)))
	Dim ceilingInt As Integer = CInt(Math.Truncate(Math.Ceiling(myDouble)))
	Console.WriteLine("Rounded down: " & floorInt)
	Console.WriteLine("Rounded up: " & ceilingInt)
End Sub
VB   C#

在上面的代码中,Math.Floor 会将 9.2 取整为 9,即四舍五入到小数位较少的最接近的整数,而 Math.Ceiling 则会取整为 10,即向下一个正整数取整。 当舍入策略必须明确地偏向较高或较低的整数值时,这些方法是必不可少的。

IronPDF 简介

探索 IronPDF 功能如果您想了解这个 .NET 库是如何让 C# 开发人员直接从 HTML 创建和管理 PDF 文件的,请点击此处。 它使用Chrome渲染引擎确保PDF看起来与在网页浏览器中一样。 这使其非常适合创建基于网络的报告。 IronPDF可以处理复杂的任务,如添加数字签名、更改文档布局、插入自定义页眉、页脚或水印。 它易于使用,因为它允许开发人员使用熟悉的网络技术,如HTML、CSS、JavaScript和图像来制作或编辑PDF文档。

使用IronPDF,主要功能是转换使用 IronPDF 将 HTML 转换为 PDF同时保持布局和样式。 它可以从各种网页内容(如报告、发票和文档)生成PDF,将HTML文件、URL或HTML字符串转换为PDF文件。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
VB   C#

要将IronPDF与C#的四舍五入功能集成,开发人员可以将IronPDF的PDF生成功能与C#中的数学运算结合起来。 这在财务或报告应用中特别有用,因为数值数据需要清晰准确地呈现。 例如,您可以生成发票或财务摘要,其中数字四舍五入到最接近的整数,以确保可读性和符合会计标准。

代码示例

以下是一个示例,展示了如何使用IronPDF和C#的Math.Round方法来创建包含四舍五入数字数据的PDF:

using IronPdf;
using System;
public class PDFGenerationWithRounding
{
    public static void Main()
    {
        License.LicenseKey = "License-Key";
        // Initialize the HTML to PDF renderer
        var renderer = new ChromePdfRenderer();
        // Example data
        double transactionAmount = 123.456;
        int roundedAmount = (int)Math.Round(transactionAmount);
        // HTML content including the rounded amount
        string htmlContent = $@"
            <html>
            <head>
                <title>Transaction Summary</title>
            </head>
            <body>
                <h1>Transaction Details</h1>
                <p>Original Amount: ${transactionAmount}</p>
                <p>Rounded Amount: ${roundedAmount}</p>
            </body>
            </html>";
        // Convert the HTML to a PDF document
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("TransactionSummary.pdf");
        Console.WriteLine("The PDF document has been generated with rounded figures.");
    }
}
using IronPdf;
using System;
public class PDFGenerationWithRounding
{
    public static void Main()
    {
        License.LicenseKey = "License-Key";
        // Initialize the HTML to PDF renderer
        var renderer = new ChromePdfRenderer();
        // Example data
        double transactionAmount = 123.456;
        int roundedAmount = (int)Math.Round(transactionAmount);
        // HTML content including the rounded amount
        string htmlContent = $@"
            <html>
            <head>
                <title>Transaction Summary</title>
            </head>
            <body>
                <h1>Transaction Details</h1>
                <p>Original Amount: ${transactionAmount}</p>
                <p>Rounded Amount: ${roundedAmount}</p>
            </body>
            </html>";
        // Convert the HTML to a PDF document
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("TransactionSummary.pdf");
        Console.WriteLine("The PDF document has been generated with rounded figures.");
    }
}
Imports IronPdf
Imports System
Public Class PDFGenerationWithRounding
	Public Shared Sub Main()
		License.LicenseKey = "License-Key"
		' Initialize the HTML to PDF renderer
		Dim renderer = New ChromePdfRenderer()
		' Example data
		Dim transactionAmount As Double = 123.456
		Dim roundedAmount As Integer = CInt(Math.Truncate(Math.Round(transactionAmount)))
		' HTML content including the rounded amount
		Dim htmlContent As String = $"
            <html>
            <head>
                <title>Transaction Summary</title>
            </head>
            <body>
                <h1>Transaction Details</h1>
                <p>Original Amount: ${transactionAmount}</p>
                <p>Rounded Amount: ${roundedAmount}</p>
            </body>
            </html>"
		' Convert the HTML to a PDF document
		Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
		pdf.SaveAs("TransactionSummary.pdf")
		Console.WriteLine("The PDF document has been generated with rounded figures.")
	End Sub
End Class
VB   C#

C# 将 double 四舍五入为 int(开发人员如何使用):图 1 - 结合 IronPDF 使用 Math.round 将数字舍入的 PDF 发票示例

在此示例中,IronPDF 将一个简单的 HTML 字符串渲染为 PDF 文件,包含四舍五入到最接近整数的交易金额的动态数据。 这种方法具有高度的适应性,使开发者能够创建符合其特定需求的更复杂的文档,在整个过程中以精确性和易用性为首要任务。

结论

C# 将 double 舍入为 int(开发人员如何使用):图 2 - IronPDF 许可页面

在C#中将double转换为int是一个多功能的过程,受double值的性质、四舍五入的上下文以及应用中所需的精度所影响。 无论是使用 Math.Round 进行最接近整数的四舍五入,显式转换直接截断,还是像 Math.FloorMath.Ceiling 这样的其他方法来进行特定方向的舍入,C# 都提供了有效处理双精度值舍入的方法。 IronPDF 拥有一个免费试用 IronPDF价格从 749 美元起。

< 前一页
C# 日志记录(开发者如何使用)
下一步 >
在C#中(对开发人员的工作原理)

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >