.NET 幫助

C# 將 double 四捨五入為 int(開發人員如何操作)

發佈 2024年4月29日
分享:

在 C# 中將雙精度浮點數四捨五入到整數在程式設計中,這是常常出現的基本任務,尤其當計算產生雙精度數值,但需要整數值以便進一步操作時,這種情況更為普遍。 該過程涉及將可能包含小數位的雙精度值轉換為最接近的整數。 這可以使用多種方法完成,每種方法都遵循指定的四捨五入規則。

在本指南中,我們將探索在C#中用於將雙精度值四捨五入為整數位的方法和函數,幫助開發人員了解每種方法的影響和應用。 我們還將探索的功能IronPDF .NET PDF 庫,一款用於在 C# 中創建 PDF 文件的強大工具。

理解 Round 方法

在 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,主要功能是轉換使用 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 - 示例發票 PDF,展示如何使用 Math.round 和 IronPDF 進行數字四捨五入

在此範例中,IronPDF 將一個簡單的 HTML 字串轉換為 PDF 文件,並合併包含四捨五入至最接近整數的交易金額的動態數據。 這種方法高度適應性強,允許開發人員創建更複雜的文件,以滿足其具體需求,並在整個過程中突出精確性和易用性。

結論

C# 將 double 四捨五入為 int(開發人員指南):圖 2 - IronPDF 授權頁面

在 C# 中將 double 轉換為 int 是一個多變的過程,受到 double 值的性質、四捨五入的上下文以及應用程式所需精度的影響。 無論使用 Math.Round 進行最近整數的四捨五入,顯式轉換以直接截取,或者使用其他方法如 Math.FloorMath.Ceiling 來進行特定方向的捨入,C# 提供了有效處理 double 值捨入的方法。 IronPDF 具有一個IronPDF 免費試用價格起始於 $749。

< 上一頁
C# 日誌記錄(開發人員的工作原理)
下一個 >
在 C# 中(對開發人員的運作方式)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >