AIDE .NET

C# Round double to int (How It Works For Developers)

Publié avril 29, 2024
Partager:

Arrondir un double à un entier en C# est une tâche fondamentale qui se pose souvent en programmation, surtout lorsque les calculs produisent des valeurs doubles mais nécessitent des valeurs entières pour d'autres opérations. Le processus consiste à convertir une valeur double, qui peut comporter des décimales, en un nombre entier le plus proche. Pour ce faire, plusieurs méthodes peuvent être utilisées, chacune respectant une convention d'arrondi spécifique.

Tout au long de ce guide, nous explorerons les différentes stratégies et fonctions utilisées en C# pour arrondir les valeurs doubles en chiffres int, en aidant les développeurs à comprendre les implications et les applications de chaque méthode. Nous explorerons également les caractéristiques deIronPDF for .NET Bibliothèque PDFle logiciel de création de documents PDF, un outil puissant pour créer des documents PDF en C#.

Comprendre la méthode ronde

En C#, la méthode Math.Round est le principal outil permettant d'arrondir les valeurs doubles à l'entier le plus proche. Cette fonction arrondit une valeur double à la valeur intégrale la plus proche, en offrant un haut degré de contrôle sur le processus d'arrondi grâce à des surcharges qui permettent de spécifier un nombre spécifié de chiffres fractionnaires et la stratégie d'arrondi. Par exemple, lorsqu'une valeur double se situe exactement à mi-chemin entre deux entiers, la convention d'arrondi détermine si la valeur est arrondie vers le haut ou vers le bas.

Voici un exemple de base de la méthode 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#

Dans ce code source, Math.Round est utilisé pour arrondir la valeur double 9.5 à l'entier le plus proche. La méthode renvoie 10, car elle arrondit au nombre le plus proche. C'est le résultat attendu lorsque l'on arrondit des valeurs positives qui sont exactement à mi-chemin entre deux valeurs entières.

Arrondi et conversion explicite

Une autre approche courante en C# pour convertir des valeurs doubles en valeurs entières est la conversion explicite. La conversion explicite consiste à transformer directement le double en un int, ce qui tronque toutes les décimales. Cela signifie qu'il n'arrondit pas à l'entier le plus proche, mais à l'entier inférieur le plus proche. Cette méthode est utile lorsqu'il s'agit uniquement de supprimer les chiffres fractionnaires sans tenir compte de la valeur intégrale la plus proche.

Voici comment vous pouvez effectuer une conversion explicite :

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#

Dans l'exemple ci-dessus, le résultat sera 9 car la conversion explicite supprime simplement les chiffres fractionnaires de 9.9, ce qui donne un entier plus petit. Cette méthode est rapide mais peut ne pas convenir lorsqu'un arrondi précis selon les conventions d'arrondi spécifiées est nécessaire.

Utilisation d'autres méthodes pour des besoins d'arrondi spécifiques

Outre Math.Round et la conversion explicite, C# propose d'autres méthodes pour arrondir les valeurs doubles, qui répondent à des besoins différents. Par exemple, Math.Floor et Math.Ceiling proposent des options permettant d'arrondir les valeurs doubles à l'entier le plus petit ou à l'entier le plus grand, respectivement. Math.Floor est particulièrement utile pour arrondir toujours à l'inférieur, même avec des valeurs négatives, tandis que Math.Ceiling assure l'arrondi à l'entier supérieur.

Voyons quelques exemples de ces méthodes :

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#

Dans le code ci-dessus, Math.Floor renvoie 9 à partir de 9.2, en arrondissant au nombre le plus proche avec moins de chiffres fractionnaires, tandis que Math.Ceiling renvoie 10, en se rapprochant de l'entier positif suivant. Ces méthodes sont essentielles lorsque la stratégie d'arrondi doit favoriser sans ambiguïté les valeurs entières supérieures ou inférieures.

Introduction à IronPDF

Découvrez les fonctionnalités d'IronPDF pour découvrir comment cette bibliothèque .NET permet aux développeurs C# de créer et de gérer des fichiers PDF directement à partir de HTML. Il utilise un moteur de rendu Chrome pour que les PDF aient le même aspect que dans un navigateur web. Il est donc parfait pour la création de rapports basés sur le web. IronPDF peut prendre en charge des tâches complexes telles que l'ajout de signatures numériques, la modification de la mise en page des documents et l'insertion d'en-têtes, de pieds de page ou de filigranes personnalisés. Il est facile à utiliser car il permet aux développeurs de travailler avec des technologies web familières telles que HTML, CSS, JavaScript et des images pour créer ou modifier des documents PDF.

Avec IronPDF, la principale fonctionnalité est la conversionHTML vers PDF à l'aide d'IronPDF, tout en maintenant les mises en page et les styles. Il peut générer des PDF à partir d'une variété de contenus web tels que des rapports, des factures et de la documentation, en convertissant des fichiers HTML, des URL ou des chaînes HTML en fichiers 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#

Pour intégrer IronPDF aux fonctionnalités d'arrondi de C#, les développeurs peuvent combiner les capacités de génération de PDF d'IronPDF avec des opérations mathématiques en C#. Ceci est particulièrement utile dans les applications financières ou de reporting où les données numériques doivent être présentées de manière claire et précise. Par exemple, vous pouvez générer des factures ou des résumés financiers où les chiffres sont arrondis à l'entier le plus proche pour garantir la lisibilité et la conformité aux normes comptables.

Exemple de code

Voici un exemple d'utilisation d'IronPDF avec la méthode Math.Round de C# pour créer un PDF contenant des données numériques arrondies :

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# Convertir un double en un int(Comment cela fonctionne-t-il pour les développeurs ?) : Figure 1 - Exemple de facture PDF qui illustre le nombre arrondi en utilisant Math.round en conjonction avec IronPDF

Dans cet exemple, IronPDF transforme une simple chaîne HTML en fichier PDF, en y incorporant des données dynamiques qui comprennent un montant de transaction arrondi à l'entier le plus proche. Cette approche est très adaptable et permet aux développeurs de créer des documents plus complexes adaptés à leurs besoins spécifiques, en privilégiant la précision et la facilité d'utilisation.

Conclusion

C# Convertir un double en un int(Comment cela fonctionne-t-il pour les développeurs ?) : Figure 2 - Page de licence d'IronPDF

L'arrondi d'un double à un int en C# est un processus versatile, influencé par la nature de la valeur double, le contexte de l'arrondi et la précision requise dans l'application. Que ce soit en utilisant Math.Round pour l'arrondi de l'intégrale la plus proche, la conversion explicite pour la troncature directe, ou d'autres méthodes comme Math.Floor et Math.Ceiling pour des directions d'arrondi spécifiques, C# fournit des méthodes pour gérer efficacement l'arrondi des valeurs doubles. IronPDF dispose d'uneessai gratuit d'IronPDF et les prix commencent à partir de 749 $.

< PRÉCÉDENT
Logging C# (Comment ça marche pour les développeurs)
SUIVANT >
En C# (Comment ça marche pour les développeurs)