Esta documentación está archivada y no tiene mantenimiento.

Math.Round (Método) (Double, Int32, MidpointRounding)

Nota: este método es nuevo en la versión 2.0 de .NET Framework.

Redondea, con la precisión especificada, un valor de punto flotante de precisión doble. Un parámetro especifica el redondeo del valor si está a la mitad del intervalo entre otros dos números.

Espacio de nombres: System
Ensamblado: mscorlib (en mscorlib.dll)

public static double Round (
	double value,
	int digits,
	MidpointRounding mode
)
public static double Round (
	double value, 
	int digits, 
	MidpointRounding mode
)
public static function Round (
	value : double, 
	digits : int, 
	mode : MidpointRounding
) : double

Parámetros

value

Número de punto flotante de precisión doble que se va a redondear.

digits

Número de dígitos significativos (precisión) del valor devuelto.

mode

Especificación sobre el redondeo de value si se encuentra a la mitad del intervalo comprendido entre otros dos números.

Valor devuelto

El número más próximo a value con una precisión igual a digits. Si value se encuentra a la mitad del intervalo entre dos números, uno par y el otro impar, el parámetro mode determina qué número se devuelve. Si la precisión de value es menor que digits, se devuelve value sin modificar.

Tipo de excepciónCondición

ArgumentOutOfRangeException

digits es menor que 0 o mayor que 15.

ArgumentException

mode no es un valor válido de System.MidpointRounding.

El parámetro digits especifica el número de dígitos significativos del valor devuelto, que puede oscilar entre 0 y 15. Si digits es cero, se devuelve un número entero.

El número máximo total de dígitos enteros y fraccionarios que se puede devolver es 15. Si el valor redondeado contiene más de 15 dígitos, se devuelven los 15 dígitos más significativos. Si el valor redondeado contiene 15 dígitos o menos, se devuelven los dígitos enteros y tantos dígitos fraccionarios como se especifiquen en el parámetro digits.

El comportamiento de este método sigue el estándar IEEE 754, sección 4. El tipo de redondeo que se realiza cuando mode es ToEven se suele denominar redondeo al entero más próximo o redondeo bancario.

En el siguiente ejemplo de código se muestra el método Round junto con la enumeración MidpointRounding. Aunque el ejemplo de código redondea los números decimales, el método Round redondea los de punto flotante de precisión doble de forma similar.

// This example demonstrates the Math.Round() method in conjunction 
// with the MidpointRounding enumeration.
using System;

class Sample 
{
    public static void Main() 
    {
    decimal result = 0.0m;
    decimal posValue =  3.45m;
    decimal negValue = -3.45m;

// By default, round a positive and a negative value to the nearest even number. 
// The precision of the result is 1 decimal place.

    result = Math.Round(posValue, 1);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1)", result, posValue);
    result = Math.Round(negValue, 1);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1)", result, negValue);
    Console.WriteLine();

// Round a positive value to the nearest even number, then to the nearest number away from zero. 
// The precision of the result is 1 decimal place.

    result = Math.Round(posValue, 1, MidpointRounding.ToEven);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToEven)", result, posValue);
    result = Math.Round(posValue, 1, MidpointRounding.AwayFromZero);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.AwayFromZero)", result, posValue);
    Console.WriteLine();

// Round a negative value to the nearest even number, then to the nearest number away from zero. 
// The precision of the result is 1 decimal place.

    result = Math.Round(negValue, 1, MidpointRounding.ToEven);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToEven)", result, negValue);
    result = Math.Round(negValue, 1, MidpointRounding.AwayFromZero);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.AwayFromZero)", result, negValue);
    Console.WriteLine();
    }
}
/*
This code example produces the following results:

 3.4 = Math.Round( 3.45, 1)
-3.4 = Math.Round(-3.45, 1)

 3.4 = Math.Round( 3.45, 1, MidpointRounding.ToEven)
 3.5 = Math.Round( 3.45, 1, MidpointRounding.AwayFromZero)

-3.4 = Math.Round(-3.45, 1, MidpointRounding.ToEven)
-3.5 = Math.Round(-3.45, 1, MidpointRounding.AwayFromZero)

*/

Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0
Mostrar: