.NET 帮助

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

发布 2024年四月29日
分享:

用 C# 将二进制舍入为整数 是程序设计中经常出现的一项基本任务,尤其是在计算产生双数值但需要整数值进行进一步运算的情况下。这一过程包括将可能包含小数位的双数值转换为最接近的整数。这可以通过各种方法完成,每种方法都遵守特定的四舍五入约定。

在本指南中,我们将探讨 C# 中用于将 double 值四舍五入到 int 位的不同策略和函数,帮助开发人员理解每种方法的含义和应用。我们还将探讨 IronPDF是一个 .NET PDF 库。

了解圆形方法

在 C# 中,Math.Round 方法是将双数值舍入为最接近整数的主要工具。该函数将一个二倍值舍入到最接近的整数值,通过重载,允许指定指定的小数位数和舍入策略,从而对舍入过程进行高度控制。例如,当一个 double 值正好位于两个整数的中间时,四舍五入约定将决定是向上舍入还是向下舍入。

下面是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.Floor9.2 返回 9,四舍五入到小数位数较少的最接近的数字,而 Math.Ceiling 返回 10,向下一个正整数移动。当四舍五入策略必须偏向于较高或较低的整数值而不产生歧义时,这些方法是必不可少的。

IronPDF 简介

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

使用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.9 刚刚发布

免费NuGet下载 总下载量: 10,731,156 查看许可证 >