Quiero hacer esto utilizando la función Math.Round
¿Cómo redondeas un número a dos decimales en C#?
Respuesta
Prueba esto:
twoDec = Math.Round(val, 2)
He aquí un ejemplo:
decimal a = 1.994444M;
Math.Round(a, 2); //returns 1.99
decimal b = 1.995555M;
Math.Round(b, 2); //returns 2.00
También puede ser que desee mirar a los banqueros redondeo/round-a- incluso con la siguiente sobrecarga:
Math.Round(a, 2, MidpointRounding.ToEven);
Hay más información en él here.
Usted debe ser capaz de especificar el número de dígitos que desea redondear al uso Math.Round (YourNumber, 2)
Puede leer más here.
Una cosa es posible que desee comprobar es el Mecanismo de redondeo de Math.Round:
http://msdn.microsoft.com/en-us/library/system.midpointrounding.aspx
Aparte de eso, recomiendo el enfoque Math.Round (inputNumer, numberOfPlaces) sobre el * 100/100 uno porque es más limpio.
Wikipedia has a nice page en el redondeo en general.
Todos los lenguajes .NET (gestionados) pueden usar cualquiera de los mecanismos de redondeo de lenguaje común (el CLR). Por ejemplo, el método Math.Round() (como se mencionó anteriormente) permite al desarrollador especificar el tipo de redondeo (Round-a-par o lejos de cero). El método Convert.ToInt32() y sus variaciones usan round-to-even. Los métodos Ceiling() y Floor() están relacionados.
Puede redondear con custom numeric formatting también.
Tenga en cuenta que Decimal.Round() utiliza un método diferente que Math.Round();
Aquí hay un useful pos t en el algoritmo de redondeo del banco. Ver uno de Raymond de posts here humorística sobre el redondeo ...
Esto es para redondear a 2 decimales en C#:
label8.Text = valor_cuota .ToString("N2") ;
En VB.NET:
Imports System.Math
round(label8.text,2)
personalmente nunca he redondas cualquier cosa. Manténgalo tan resuelto como sea posible, ya que el redondeo es una especie de arenque rojo en CS de todos modos. Pero sí desea formatear los datos para sus usuarios, y con ese fin, me parece que string.Format("{0:0.00}", number)
es un buen enfoque.
Esto funciona mejor para propósitos de exhibición, especialmente para dinero, ya que £ 5.4 (con Math.round) no se ve tan bien como £ 5.40 (de esta manera). –
Lo he intentado antes de string.Format ("0: 0.00", número), pero no funcionó. Esos corchetes son muy importantes, entonces: string.Format ("{0: 0.00}", number) funciona. – FrenkyB
@FrenkyB Cuando dice 'corchetes', espero que se refiera a llaves. – Mathemats
Si desea una cadena
> (1.7289).ToString("#.##")
"1.73"
O un decimal
> Math.Round((Decimal)x, 2)
1.73m
Pero recuerde! El redondeo no es distributivo, es decir. round(x*y) != round(x) * round(y)
. Así que no hagas ningún redondeo hasta el final de un cálculo, de lo contrario perderás precisión.
string a = "10.65678";
decimal d = Math.Round (Convert.ToDouble (a.ToString()), 2)
// convertir hasta dos decimales
String.Format("{0:0.00}", 140.6767554); // "140.67"
String.Format("{0:0.00}", 140.1); // "140.10"
String.Format("{0:0.00}", 140); // "140.00"
Double d = 140.6767554;
Double dc = Math.Round((Double)d, 2); // 140.67
decimal d = 140.6767554M;
decimal dc = Math.Round(d, 2); // 140.67
======== =
// just two decimal places
String.Format("{0:0.##}", 123.4567); // "123.46"
String.Format("{0:0.##}", 123.4); // "123.4"
String.Format("{0:0.##}", 123.0); // "123"
también puede combinar "0" con "#".
String.Format("{0:0.0#}", 123.4567) // "123.46"
String.Format("{0:0.0#}", 123.4) // "123.4"
String.Format("{0:0.0#}", 123.0) // "123.0"
String.Format ("{0: 0.00}", 140.6767554); ! = "140.67" En realidad se representa como "140.68" - redondeando hacia arriba – AndyT
public double RoundDown(double number, int decimalPlaces)
{
return Math.Floor(number * Math.Pow(10, decimalPlaces))/Math.Pow(10, decimalPlaces);
}
Math.floor (123456,646 * 100)/100 regresarían 123456,64
Sé que es una vieja pregunta, pero tenga en cuenta las siguientes diferencias entre Matemáticas redondas y Formato de cadena redondo:
decimal d1 = (decimal)1.125;
Math.Round(d1, 2).Dump(); // returns 1.12
d1.ToString("#.##").Dump(); // returns "1.13"
decimal d2 = (decimal)1.1251;
Math.Round(d2, 2).Dump(); // returns 1.13
d2.ToString("#.##").Dump(); // returns "1.13"
- 1. formato a dos cifras decimales
- 2. número redondo a 2 decimales
- 3. doble vuelta a dos decimales
- 4. Dos lugares decimales usando C#
- 5. ¿Cómo imprimir un doble con dos decimales en Android?
- 6. Convertir un número a 2 decimales en Java
- 7. Formateo de un flotador a ### ## (dos decimales)
- 8. Usar PHP para generar decimales aleatorios entre dos decimales
- 9. ¿Cómo puedo formatear un decimal en un número controlado por programa de decimales en C#?
- 10. ¿Cómo puedo limitar el número de decimales en un UITextField?
- 11. límite de un doble con dos decimales
- 12. Completando una variable con dos decimales de C#
- 13. Formateo de un flotante con dos decimales
- 14. necesito para redondear un flotador con dos decimales en Java
- 15. ¿Cómo validar un porcentaje de dos decimales con un Regex?
- 16. ¿Cómo redondeo a 2 decimales?
- 17. En C# son decimales y decimales diferentes?
- 18. Formatear un flotante con dos decimales
- 19. Restringir el campo de entrada a dos decimales con jQuery
- 20. especificando el número de decimales en Python
- 21. Double.ToString con N Número de lugares decimales
- 22. ¿Cómo puedo formatear un número en C# con comas y decimales?
- 23. Extracción de decimales finales de una .ToString ("c") número
- 24. Cómo acercarse mejor a los decimales de redondeo en C#
- 25. La conversión de un decimal a un número doble en C# resultados en una diferencia
- 26. ¿Cómo forzar un número a 10 decimales en Ruby on Rails?
- 27. javascript - cómo evitar Ajustar a números decimales
- 28. ¿Cómo calcular el número de dígitos decimales significativos de un C++ double?
- 29. Redondear valores decimales en C#
- 30. C# Cómo dividir decimales sin redondeo implícito
Deberías cla rify que MidPointRounding.ToEven ES el valor predeterminado. Si quería AwayFromZero, tendría que usar la sobrecarga –
I wounder por qué MidPointRounding.ToEven es el predeterminado ... – Pedro77
Creo que debería ser: 'MidpointRounding' no' MidPointRounding' en caso de que alguien se pregunte por qué no está compilando. –