AYUDA .NET

C# Round double to int (Cómo funciona para desarrolladores)

Actualizado 29 de abril, 2024
Compartir:

Redondear un doble a un entero en C# es una tarea fundamental que se plantea a menudo en programación, especialmente frecuente cuando los cálculos producen valores dobles pero requieren valores enteros para operaciones posteriores. El proceso consiste en convertir un valor doble, que puede incluir decimales, al número entero más próximo. Esto puede hacerse utilizando varios métodos, cada uno de los cuales se adhiere a una convención de redondeo especificada.

A lo largo de esta guía, exploraremos diferentes estrategias y funciones utilizadas en C# para redondear valores dobles a dígitos int, ayudando a los desarrolladores a comprender las implicaciones y aplicaciones de cada método. También exploraremos IronPDF que es una biblioteca PDF .NET.

Comprender el método circular

En C#, el método Math.Round es la herramienta principal para redondear valores dobles al entero más cercano. Esta función redondea un valor doble al valor integral más próximo, proporcionando un alto grado de control sobre el proceso de redondeo mediante sobrecargas que permiten especificar un número determinado de dígitos fraccionarios y la estrategia de redondeo. Por ejemplo, cuando un valor doble está exactamente a medio camino entre dos enteros, la convención de redondeo determina si el valor se redondea hacia arriba o hacia abajo.

He aquí un ejemplo básico del método 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#

En este código fuente, Math.Round se utiliza para redondear el valor doble 9.5 al entero más cercano. El método devuelve 10, ya que redondea al número más próximo. Este es el resultado esperado cuando se redondean valores positivos que están exactamente a mitad de camino entre dos valores enteros.

Redondeo y conversión explícita

Otro enfoque común en C# para convertir valores dobles a enteros es mediante la conversión explícita. La conversión explícita consiste en convertir directamente el double en un int, truncando los decimales. Esto significa que no redondea al entero más próximo, sino al entero más pequeño más próximo. Este método es útil cuando sólo necesita eliminar los dígitos fraccionarios sin tener en cuenta el valor integral más próximo.

A continuación se explica cómo realizar una conversión explícita:

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#

En el ejemplo anterior, la salida será 9 porque la conversión explícita simplemente elimina los dígitos fraccionarios de 9.9, dando lugar a un número entero más pequeño. Este método es rápido pero puede no ser apropiado cuando se requiere un redondeo preciso de acuerdo con las convenciones de redondeo especificadas.

Utilización de otros métodos para necesidades específicas de redondeo

Aparte de Math.Round y la conversión explícita, C# ofrece otros métodos para redondear valores dobles, que responden a diferentes necesidades. Por ejemplo, Math.Floor y Math.Ceiling proporcionan opciones para redondear valores dobles siempre hacia el entero menor o el entero mayor, respectivamente. Math.Floor es particularmente útil para redondear siempre hacia abajo, incluso con valores negativos, mientras que Math.Ceiling asegura el redondeo hacia arriba.

Veamos ejemplos de estos métodos:

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#

En el código anterior, Math.Floor devuelve 9 a partir de 9.2, redondeando al número más cercano con menos dígitos fraccionarios, mientras que Math.Ceiling devuelve 10, moviéndose hacia el siguiente entero positivo. Estos métodos son esenciales cuando la estrategia de redondeo debe favorecer valores enteros superiores o inferiores sin ambigüedad.

Introducción a IronPDF

IronPDF es una biblioteca .NET que permite a los desarrolladores de C# crear y gestionar Archivos PDF directamente desde HTML. Utiliza un motor de renderizado de Chrome para garantizar que los PDF tengan el mismo aspecto que en un navegador web. Esto lo hace perfecto para crear informes basados en la web. IronPDF puede gestionar tareas complejas como añadir firmas digitales, cambiar el diseño de los documentos e insertar encabezados, pies de página o marcas de agua personalizados. Es fácil de usar porque permite a los desarrolladores trabajar con tecnologías web conocidas, como HTML, CSS, JavaScript e imágenes, para crear o editar documentos PDF.

Para integrar IronPDF con las funcionalidades de redondeo de C#, los desarrolladores pueden combinar las capacidades de generación de PDF de IronPDF con operaciones matemáticas en C#. Esto resulta especialmente útil en aplicaciones financieras o de elaboración de informes en las que los datos numéricos deben presentarse de forma clara y precisa. Por ejemplo, puede generar facturas o resúmenes financieros en los que las cifras se redondeen al número entero más próximo para garantizar la legibilidad y el cumplimiento de las normas contables.

Ejemplo de código

He aquí un ejemplo de cómo puede utilizar IronPDF junto con el método Math.Round de C# para crear un PDF que incluya datos numéricos redondeados:

using IronPdf;
using System;
public class PDFGenerationWithRounding
{
    public static void Main()
    {
        License.LicenseKey = "License-Key";
        //  Inicializar el renderizador de HTML a PDF
        var renderer = new ChromePdfRenderer();
        //  Ejemplo de datos
        double transactionAmount = 123.456;
        int roundedAmount = (int)Math.Round(transactionAmount);
        //  Contenido HTML incluido el importe redondeado
        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>";
        //  Convertir el HTML en un documento PDF
        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";
        //  Inicializar el renderizador de HTML a PDF
        var renderer = new ChromePdfRenderer();
        //  Ejemplo de datos
        double transactionAmount = 123.456;
        int roundedAmount = (int)Math.Round(transactionAmount);
        //  Contenido HTML incluido el importe redondeado
        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>";
        //  Convertir el HTML en un documento PDF
        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"
		'  Inicializar el renderizador de HTML a PDF
		Dim renderer = New ChromePdfRenderer()
		'  Ejemplo de datos
		Dim transactionAmount As Double = 123.456
		Dim roundedAmount As Integer = CInt(Math.Truncate(Math.Round(transactionAmount)))
		'  Contenido HTML incluido el importe redondeado
		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>"
		'  Convertir el HTML en un documento PDF
		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 (Cómo funciona para desarrolladores): Figura 1 - Ejemplo de factura PDF que muestra el número redondeado utilizando Math.round junto con IronPDF

En este ejemplo, IronPDF convierte una simple cadena HTML en un archivo PDF, incorporando datos dinámicos que incluyen el importe de una transacción redondeado al número entero más próximo. Este enfoque es muy adaptable, lo que permite a los desarrolladores crear documentos más complejos adaptados a sus necesidades específicas, con la precisión y la facilidad de uso a la cabeza del proceso.

Conclusión

C# Round double to int (Cómo funciona para desarrolladores): Figura 2 - Página de licencias de IronPDF

El redondeo de double a int en C# es un proceso versátil, influenciado por la naturaleza del valor double, el contexto del redondeo y la precisión requerida en la aplicación. Ya sea utilizando Math.Round para el redondeo de la integral más cercana, la conversión explícita para el truncamiento directo, u otros métodos como Math.Floor y Math.Ceiling para direcciones de redondeo específicas, C# proporciona métodos para manejar el redondeo de valores dobles de forma efectiva. IronPDF tiene un prueba gratuita El precio de IronPDF es a partir de 749 dólares.

< ANTERIOR
C# Logging (Cómo funciona para los desarrolladores)
SIGUIENTE >
En C# (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