Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

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

 

Publicado: octubre de 2016

Redondea un valor de punto flotante de precisión doble al número especificado de dígitos fraccionarios. Un parámetro especifica el redondeo del valor si está a la mitad del intervalo entre dos números.

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

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

Parámetros

value
Type: System.Double

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

digits
Type: System.Int32

Número de dígitos fraccionarios del valor devuelto.

mode
Type: System.MidpointRounding

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

Valor devuelto

Type: System.Double

Número más cercano a value que tiene varios dígitos fraccionarios iguales a digits. Si value tiene menos dígitos fraccionarios que digits, value se devuelve sin modificar.

Exception Condition
ArgumentOutOfRangeException

digits es menor que 0 o mayor que 15.

ArgumentException

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

System_CAPS_noteNota

Para obtener ejemplos y la información de uso completa acerca de ésta y otras sobrecargas de la Round (método), consulte la Round página de referencia.

Notas para llamadores:

Debido a la pérdida de precisión que puede obtenerse que representa los valores decimales como números de punto flotante o realizar operaciones aritméticas en valores de punto flotante, en algunos casos el Round(Double, Int32, MidpointRounding) método no puede aparecer redondear los valores de punto medio especificado por el mode parámetro. Esto se muestra en el ejemplo siguiente, donde se redondea 2.135 2.13 en lugar de 2.14. Esto ocurre porque internamente se multiplica el método value por 10dígitos, y la operación de multiplicación en este caso sufre una pérdida de precisión.

using System;

public class Example
{
   public static void Main()
   {
      double[] values = { 2.125, 2.135, 2.145, 3.125, 3.135, 3.145 };
      foreach (double value in values)
         Console.WriteLine("{0} --> {1}", value, 
                           Math.Round(value, 2, MidpointRounding.AwayFromZero));

   }
}
// The example displays the following output:
//       2.125 --> 2.13
//       2.135 --> 2.13
//       2.145 --> 2.15
//       3.125 --> 3.13
//       3.135 --> 3.14
//       3.145 --> 3.15

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 2.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: