.NET-HILFE

C# Round double to int (Wie es funktioniert für Entwickler)

Veröffentlicht 29. April 2024
Teilen Sie:

Abrunden eines Double auf eine ganze Zahl in C# ist eine grundlegende Aufgabe, die in der Programmierung häufig auftritt, insbesondere dann, wenn Berechnungen doppelte Werte ergeben, aber für weitere Operationen ganzzahlige Werte erforderlich sind. Dabei wird ein Double-Wert, der auch Nachkommastellen enthalten kann, in die nächstliegende Ganzzahl umgerechnet. Dies kann mit verschiedenen Methoden geschehen, die jeweils eine bestimmte Rundungskonvention einhalten.

In diesem Handbuch werden wir verschiedene Strategien und Funktionen untersuchen, die in C# verwendet werden, um Double-Werte auf Int-Ziffern zu runden, und Entwicklern helfen, die Auswirkungen und Anwendungen jeder Methode zu verstehen. Wir werden auch Folgendes erforschen IronPDFdie eine .NET PDF-Bibliothek ist.

Zum Verständnis der Runden Methode

In C# ist die Methode Math.Round das wichtigste Werkzeug zum Runden von Double-Werten auf die nächste Ganzzahl. Diese Funktion rundet einen Double-Wert auf den nächsten ganzzahligen Wert und bietet ein hohes Maß an Kontrolle über den Rundungsprozess durch Überladungen, die die Angabe einer bestimmten Anzahl von Nachkommastellen und der Rundungsstrategie ermöglichen. Wenn zum Beispiel ein Double-Wert genau in der Mitte zwischen zwei ganzen Zahlen liegt, bestimmt die Rundungskonvention, ob der Wert auf- oder abgerundet wird.

Hier ist ein einfaches Beispiel für die Methode 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#

In diesem Quellcode wird Math.Round verwendet, um den Double-Wert 9.5 auf die nächste Ganzzahl zu runden. Die Methode gibt 10 zurück, da sie auf die nächste Zahl rundet. Dies ist das erwartete Ergebnis, wenn positive Werte, die genau in der Mitte zwischen zwei ganzzahligen Werten liegen, gerundet werden.

Rundung und explizite Umrechnung

Ein weiterer gängiger Ansatz in C# zur Konvertierung von Double-Werten in Integer-Werte ist die explizite Konvertierung. Bei der expliziten Konvertierung wird der double-Wert direkt in einen int-Wert umgewandelt, wobei alle Nachkommastellen abgeschnitten werden. Das bedeutet, dass nicht auf die nächste ganze Zahl gerundet wird, sondern auf die nächstkleinere ganze Zahl. Diese Methode ist nützlich, wenn Sie nur die Nachkommastellen entfernen müssen, ohne den nächstliegenden ganzzahligen Wert zu berücksichtigen.

Hier erfahren Sie, wie Sie eine explizite Konvertierung durchführen können:

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#

Im obigen Beispiel lautet die Ausgabe 9, da bei der expliziten Konvertierung einfach die Nachkommastellen von 9,9 weggelassen werden, was zu einer kleineren ganzen Zahl führt. Diese Methode ist schnell, aber möglicherweise nicht geeignet, wenn eine genaue Rundung gemäß den vorgegebenen Rundungskonventionen erforderlich ist.

Verwendung anderer Methoden für spezifische Rundungsbedürfnisse

Neben Math.Round und der expliziten Konvertierung bietet C# weitere Methoden zum Runden von Double-Werten, die unterschiedlichen Anforderungen gerecht werden. Zum Beispiel bieten Math.Floor und Math.Ceiling die Möglichkeit, Double-Werte immer auf die kleinere bzw. die größere ganze Zahl zu runden. Math.Floor ist besonders nützlich, um immer abzurunden, auch bei negativen Werten, während Math.Ceiling das Aufrunden gewährleistet.

Schauen wir uns Beispiele für diese Methoden an:

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#

Im obigen Code gibt Math.Floor 9 von 9.2 zurück, wobei auf die nächste Zahl mit weniger Nachkommastellen gerundet wird, während Math.Ceiling 10 zurückgibt und sich auf die nächste positive ganze Zahl zubewegt. Diese Methoden sind unverzichtbar, wenn die Rundungsstrategie entweder höhere oder niedrigere ganzzahlige Werte bevorzugen muss, ohne dass es zu Mehrdeutigkeiten kommt.

Einführung in IronPDF

IronPDF ist eine .NET-Bibliothek, die C#-Entwicklern die Erstellung und Verwaltung von PDF-Dateien direkt aus HTML. Es verwendet eine Chrome Rendering Engine, um sicherzustellen, dass die PDFs genauso aussehen wie in einem Webbrowser. Damit eignet sich das Programm hervorragend für die Erstellung webbasierter Berichte. IronPDF kann komplexe Aufgaben wie das Hinzufügen digitaler Signaturen, das Ändern von Dokumentenlayouts und das Einfügen benutzerdefinierter Kopf- und Fußzeilen oder Wasserzeichen bewältigen. Es ist einfach zu verwenden, da es Entwicklern ermöglicht, mit vertrauten Webtechnologien wie HTML, CSS, JavaScript und Bildern zu arbeiten, um PDF-Dokumente zu erstellen oder zu bearbeiten.

Mit IronPDF ist die Hauptfunktion das Konvertieren HTML zu PDF, während Layouts und Stile beibehalten werden. Es kann PDFs aus einer Vielzahl von Webinhalten wie Berichten, Rechnungen und Dokumentationen erstellen, indem HTML-Dateien, URLs oder HTML-Strings in PDF-Dateien umgewandelt werden.

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#

Um IronPDF mit C# Rundungsfunktionen zu integrieren, können Entwickler die PDF-Erzeugungsfunktionen von IronPDF mit mathematischen Operationen in C# kombinieren. Dies ist besonders nützlich bei Finanz- oder Berichtsanwendungen, bei denen numerische Daten klar und genau dargestellt werden müssen. So können Sie beispielsweise Rechnungen oder Finanzübersichten erstellen, bei denen die Zahlen auf die nächste ganze Zahl gerundet werden, um die Lesbarkeit und die Einhaltung der Rechnungslegungsstandards zu gewährleisten.

Code-Beispiel

Hier ein Beispiel, wie Sie IronPDF zusammen mit der C#-Methode Math.Round verwenden können, um eine PDF-Datei mit gerundeten numerischen Daten zu erstellen:

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# Round double to int (Wie es für Entwickler funktioniert): Abbildung 1 - Beispielrechnung PDF, die die gerundete Zahl mit Math.round in Verbindung mit IronPDF zeigt

In diesem Beispiel rendert IronPDF eine einfache HTML-Zeichenkette in eine PDF-Datei und fügt dynamische Daten ein, die einen auf die nächste Ganzzahl gerundeten Transaktionsbetrag enthalten. Dieser Ansatz ist sehr anpassungsfähig und ermöglicht es Entwicklern, komplexere Dokumente zu erstellen, die auf ihre spezifischen Bedürfnisse zugeschnitten sind, wobei Präzision und Benutzerfreundlichkeit im Vordergrund stehen.

Schlussfolgerung

C# Round double to int (Wie es für Entwickler funktioniert): Abbildung 2 - IronPDF-Lizenzierungsseite

Das Runden von double auf int in C# ist ein vielseitiger Prozess, der von der Art des double-Wertes, dem Kontext der Rundung und der in der Anwendung erforderlichen Genauigkeit beeinflusst wird. Ob mit Math.Round zum Runden des nächstliegenden Integrals, durch explizite Konvertierung zum direkten Abschneiden oder mit anderen Methoden wie Math.Floor und Math.Ceiling für bestimmte Rundungsrichtungen, C# bietet Methoden zum effektiven Runden von Double-Werten. IronPDF hat eine kostenloser Test die Preise für IronPDF beginnen bei $749.

< PREVIOUS
C# Logging (Wie es für Entwickler funktioniert)
NÄCHSTES >
In C# (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >