AYUDA .NET

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

Actualizado 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#. Examinaremos 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; //  número decimal
decimal roundedValue = Math.Round(d, 2);
Console.WriteLine(roundedValue);  //  Salidas: 3.15
decimal d = 3.14519M; //  número decimal
decimal roundedValue = Math.Round(d, 2);
Console.WriteLine(roundedValue);  //  Salidas: 3.15
Dim d As Decimal = 3.14519D '  número decimal
Dim roundedValue As Decimal = Math.Round(d, 2)
Console.WriteLine(roundedValue) '  Salidas: 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); //  redondear a 2 dígitos
Console.WriteLine(result);  //  Salida: 3.15
double num = 3.14519;
double result = Math.Round(num, 2); //  redondear a 2 dígitos
Console.WriteLine(result);  //  Salida: 3.15
Dim num As Double = 3.14519
Dim result As Double = Math.Round(num, 2) '  redondear a 2 dígitos
Console.WriteLine(result) '  Salida: 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; //  formato de valor doble
double midpointResult = Math.Round(midpointNumber, 2, MidpointRounding.AwayFromZero);
Console.WriteLine(midpointResult);  //  Respuesta de las salidas: 2,35
double midpointNumber = 2.345; //  formato de valor doble
double midpointResult = Math.Round(midpointNumber, 2, MidpointRounding.AwayFromZero);
Console.WriteLine(midpointResult);  //  Respuesta de las salidas: 2,35
Dim midpointNumber As Double = 2.345 '  formato de valor doble
Dim midpointResult As Double = Math.Round(midpointNumber, 2, MidpointRounding.AwayFromZero)
Console.WriteLine(midpointResult) '  Respuesta de las salidas: 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 crear PDF de alta calidad renderizando HTML CSS, JavaScript e 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.

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";
        //  Crear un documento PDF
        var Renderer = new ChromePdfRenderer();
        //  Datos de muestra que pueden proceder de una base de datos o de un cálculo
        double initialValue = 2.345678;
        double roundedValue = Math.Round(initialValue, 2);
        //  Contenido HTML que incluye el valor redondeado
        var htmlContent = $@"
            <html>
            <head>
                <title>PDF Report</title>
            </head>
            <body>
                <h1>Financial Report</h1>
                <p>Value after rounding: {roundedValue}</p>
            </body>
            </html>";
        //  Convertir HTML a 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";
        //  Crear un documento PDF
        var Renderer = new ChromePdfRenderer();
        //  Datos de muestra que pueden proceder de una base de datos o de un cálculo
        double initialValue = 2.345678;
        double roundedValue = Math.Round(initialValue, 2);
        //  Contenido HTML que incluye el valor redondeado
        var htmlContent = $@"
            <html>
            <head>
                <title>PDF Report</title>
            </head>
            <body>
                <h1>Financial Report</h1>
                <p>Value after rounding: {roundedValue}</p>
            </body>
            </html>";
        //  Convertir HTML a 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"
		'  Crear un documento PDF
		Dim Renderer = New ChromePdfRenderer()
		'  Datos de muestra que pueden proceder de una base de datos o de un cálculo
		Dim initialValue As Double = 2.345678
		Dim roundedValue As Double = Math.Round(initialValue, 2)
		'  Contenido HTML que incluye el valor redondeado
		Dim htmlContent = $"
            <html>
            <head>
                <title>PDF Report</title>
            </head>
            <body>
                <h1>Financial Report</h1>
                <p>Value after rounding: {roundedValue}</p>
            </body>
            </html>"
		'  Convertir HTML a 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 un prueba gratuita 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.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123