AYUDA .NET

C# Round to 2 Decimal Places (Cómo funciona para desarrolladores)

Publicado en 29 de abril, 2024
Compartir:

Redondear números en programación es una tarea habitual, especialmente cuando se trabaja con datos financieros o mediciones en las que se requiere precisión hasta un cierto número de decimales. En C#, hay varias formas de redondear un número decimal o un número doble a dos decimales. Este tutorial explicará los conceptos con claridad y le proporcionará conocimientos exhaustivos sobre cómo lograr esta precisión utilizando C#. Estudiaremos laFunciones de la biblioteca IronPDF y varios métodos y funciones proporcionados por el lenguaje C# para manipular números decimales con una precisión especificada.

Comprensión de los tipos de valor decimal y doble en C#

Antes de sumergirnos en las técnicas de redondeo de números, es importante comprender los tipos de números con los que vamos a tratar. En C#, decimal y double son dos tipos diferentes utilizados para valores numéricos. Una variable decimal se utiliza normalmente cuando se necesita el máximo nivel de precisión, por ejemplo en cálculos financieros. Por otro lado, un resultado doble se utiliza cuando los cálculos en coma flotante son suficientes y el rendimiento es un factor más crítico que la precisión exacta. Ambos tipos pueden redondearse utilizando métodos específicos de la biblioteca de C#.

Uso de Math.Round para redondear a dos decimales

El método Math.Round es el más directo para redondear valores decimales o valores dobles a un número especificado de decimales. También puede utilizar esta función matemática para redondear valores dobles al entero más próximo. Este método de valor Math.Round es versátil, ya que permite especificar cuántos dígitos desea conservar después del punto decimal, y también permite elegir la estrategia de redondeo si el número se encuentra exactamente a mitad de camino entre dos intervalos.

Redondear un valor decimal a decimales

Para redondear un número decimal a dos decimales, se puede utilizar el método Math.Round que toma dos parámetros: el número a redondear y el número de decimales. He aquí un ejemplo sencillo:

decimal d = 3.14519M; // decimal number
decimal roundedValue = Math.Round(d, 2);
Console.WriteLine(roundedValue);  // Outputs: 3.15
decimal d = 3.14519M; // decimal number
decimal roundedValue = Math.Round(d, 2);
Console.WriteLine(roundedValue);  // Outputs: 3.15
Dim d As Decimal = 3.14519D ' decimal number
Dim roundedValue As Decimal = Math.Round(d, 2)
Console.WriteLine(roundedValue) ' Outputs: 3.15
VB   C#

En este ejemplo, el valor decimal 3,14519 se redondea a 3,15. El método Math.Round toma el decimal d y lo redondea a dos decimales.

C# Redondear a 2 Decimales (Cómo Funciona Para Desarrolladores): Figura 1 - Ejemplo de salida de redondeo a dos decimales

Redondear un valor doble

El redondeo de un valor doble funciona de forma similar al redondeo de un valor decimal. Aquí está el código sobre cómo se puede redondear un número doble a dos decimales utilizando una función matemática:

double num = 3.14519;
double result = Math.Round(num, 2); // round to 2 digits
Console.WriteLine(result);  // Output: 3.15
double num = 3.14519;
double result = Math.Round(num, 2); // round to 2 digits
Console.WriteLine(result);  // Output: 3.15
Dim num As Double = 3.14519
Dim result As Double = Math.Round(num, 2) ' round to 2 digits
Console.WriteLine(result) ' Output: 3.15
VB   C#

Este fragmento de código redondea efectivamente el número doble 3.14519 al entero más cercano, 3.15, utilizando el valor math.round. El segundo argumento de Math.Round especifica que el redondeo debe hacerse a dos decimales.

Manejo del redondeo del punto medio

Un aspecto importante del redondeo es cómo tratar los casos en los que el número se encuentra exactamente en el punto medio entre dos posibles valores redondeados. C# proporciona una opción para especificar el comportamiento de redondeo a través del enum MidpointRounding. Esto permite controlar la dirección de redondeo en estos casos.

double midpointNumber = 2.345; // double value format
double midpointResult = Math.Round(midpointNumber, 2, MidpointRounding.AwayFromZero);
Console.WriteLine(midpointResult);  // Outputs answer: 2.35
double midpointNumber = 2.345; // double value format
double midpointResult = Math.Round(midpointNumber, 2, MidpointRounding.AwayFromZero);
Console.WriteLine(midpointResult);  // Outputs answer: 2.35
Dim midpointNumber As Double = 2.345 ' double value format
Dim midpointResult As Double = Math.Round(midpointNumber, 2, MidpointRounding.AwayFromZero)
Console.WriteLine(midpointResult) ' Outputs answer: 2.35
VB   C#

C# Redondear a 2 Decimales (Cómo Funciona Para Desarrolladores): Figura 2 - Redondeo del punto medio a 2 decimales Salida

En el ejemplo anterior, MidpointRounding.AwayFromZero le dice al método que redondee el número del punto medio 2.345 al número más cercano alejado de cero, dando como resultado 2.35. Esto resulta especialmente útil en los cálculos financieros, en los que se suele redondear hacia arriba.

Uso de IronPDF con C# para redondear números y generar PDFs

C# Redondear a 2 Decimales (Cómo Funciona Para Desarrolladores): Figura 3 - IronPDF

IronPDF es una completa biblioteca de generación de PDF diseñada específicamente para la plataforma .NET y escrita en C#. Está bien considerado por su capacidad para crearpDF de alta calidad mediante la renderización de HTML, CSS y JavaScripte imágenes. Esta capacidad garantiza que los desarrolladores puedan aprovechar sus conocimientos actuales de desarrollo web para la generación de PDF. IronPDF utiliza un motor de renderizado de Chrome para producir documentos PDF perfectos en píxeles, reflejando el diseño que se ve en los navegadores web.

La característica clave de IronPDF es suCapacidad de conversión de HTML a PDFpara garantizar la conservación de sus diseños y estilos. Convierte contenidos web en PDF, adecuados para informes, facturas y documentación. Puede convertir fácilmente archivos HTML, URL y cadenas HTML en 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 puede integrarse perfectamente con C# para gestionar tareas precisas, como el redondeo de decimales a dos decimales antes de incrustarlos en un PDF. Esto es especialmente útil en informes financieros o facturas en los que la precisión numérica es importante.

Ejemplo: Generación de un PDF con valores decimales redondeados

En este ejemplo, crearemos una sencilla aplicación C# que utiliza IronPDF para generar un documento PDF que contiene una lista de números redondeados a dos decimales. Esto demuestra cómo se pueden integrar los cálculos numéricos con la generación de PDF en un escenario del mundo real.

En primer lugar, tendrá que instalar IronPDF. Puede hacerlo a través de NuGet:

Install-Package IronPdf

Una vez instalado IronPDF, puede crear un PDF a partir de contenido HTML, incluidos números redondeados a dos decimales:

using IronPdf;
using System;
class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key";
        // Create a PDF document
        var Renderer = new ChromePdfRenderer();
        // Sample data that might come from a database or computation
        double initialValue = 2.345678;
        double roundedValue = Math.Round(initialValue, 2);
        // HTML content including the rounded value
        var htmlContent = $@"
            <html>
            <head>
                <title>PDF Report</title>
            </head>
            <body>
                <h1>Financial Report</h1>
                <p>Value after rounding: {roundedValue}</p>
            </body>
            </html>";
        // Convert HTML to PDF
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
        pdfDocument.SaveAs("Report.pdf");
        Console.WriteLine("PDF generated successfully.");
    }
}
using IronPdf;
using System;
class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key";
        // Create a PDF document
        var Renderer = new ChromePdfRenderer();
        // Sample data that might come from a database or computation
        double initialValue = 2.345678;
        double roundedValue = Math.Round(initialValue, 2);
        // HTML content including the rounded value
        var htmlContent = $@"
            <html>
            <head>
                <title>PDF Report</title>
            </head>
            <body>
                <h1>Financial Report</h1>
                <p>Value after rounding: {roundedValue}</p>
            </body>
            </html>";
        // Convert HTML to PDF
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
        pdfDocument.SaveAs("Report.pdf");
        Console.WriteLine("PDF generated successfully.");
    }
}
Imports IronPdf
Imports System
Friend Class Program
	Shared Sub Main()
		License.LicenseKey = "License-Key"
		' Create a PDF document
		Dim Renderer = New ChromePdfRenderer()
		' Sample data that might come from a database or computation
		Dim initialValue As Double = 2.345678
		Dim roundedValue As Double = Math.Round(initialValue, 2)
		' HTML content including the rounded value
		Dim htmlContent = $"
            <html>
            <head>
                <title>PDF Report</title>
            </head>
            <body>
                <h1>Financial Report</h1>
                <p>Value after rounding: {roundedValue}</p>
            </body>
            </html>"
		' Convert HTML to PDF
		Dim pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent)
		pdfDocument.SaveAs("Report.pdf")
		Console.WriteLine("PDF generated successfully.")
	End Sub
End Class
VB   C#

C# Redondear a 2 Decimales(Cómo funciona para desarrolladores): Figura 4 - Salida PDF

Este ejemplo muestra cómo puede combinar la precisión de las operaciones matemáticas de C# con las capacidades de generación de documentos de IronPDF para crear informes PDF detallados y precisos. Ya se trate de un resumen financiero, un informe técnico o cualquier otro documento en el que la precisión numérica sea importante, este método garantizará que sus datos se presenten de forma clara y correcta.

Conclusión

C# Redondear a 2 Decimales(Cómo funciona para los desarrolladores): Figura 5 - Licencias

El redondeo de números a un número determinado de decimales es un aspecto fundamental del tratamiento de valores decimales y dobles en C#. En este tutorial, exploramos cómo redondear a dos decimales utilizando la función Math.Round. También discutimos cómo manejar situaciones en las que el número cae justo en medio de dos números a los que se podría redondear. IronPDF ofrece unprueba gratuita en su página de licencias para que los desarrolladores exploren sus características antes de realizar una compra. Si decides que es la herramienta adecuada para tus necesidades, la licencia para uso comercial comienza en 749 dólares.

< ANTERIOR
Factory Pattern C# (Cómo funciona para desarrolladores)
SIGUIENTE >
C# Substring (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.12 acaba de salir

Descarga gratuita de NuGet Descargas totales: 11,622,374 Ver licencias >