Formatear un flotador a 2 decimales
Actualmente estoy construyendo un módulo de ventas para un sitio web de clientes. Hasta ahora tengo el precio de venta para calcular perfectamente, pero donde he llegado atascado es formatear la salida a 2 decimales.
Actualmente estoy llamando a esto en una variable para que pueda vincular los datos de los resultados a una listview.
Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),
¿Puede alguien mostrarme cómo formatear la salida a 2 decimales?? ¡Muchas gracias!
6 answers
Puede pasar el formato al método ToString
, por ejemplo:
myFloatVariable.ToString("0.00"); //2dp Number
myFloatVariable.ToString("n2"); // 2dp Number
myFloatVariable.ToString("c2"); // 2dp currency
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-09 07:33:09
Lo primero que debe hacer es usar el tipo decimal
en lugar de float
para los precios. Usar float
es absolutamente inaceptable para eso porque no puede representar con precisión la mayoría de las fracciones decimales.
Una vez que hayas hecho eso, Decimal.Round()
se puede utilizar para redondear a 2 lugares.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-15 10:36:57
String.Format("{0:#,###.##}", value)
Un ejemplo más complejo de Formato de cadena en C#:
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);
Esto generará "$1,240.00" si se pasa 1243.50. Dará salida al mismo formato pero entre paréntesis si el número es negativo, y dará salida a la cadena "Cero" si el número es cero.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-25 14:21:49
Creo:
Cadena.Format ("{0: 0.00}", Sale);
Debería hacerlo.
Ver Enlace Ejemplos de Formato de cadena C #
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-15 10:41:05
string outString= number.ToString("####0.00");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-15 10:34:37
Como ya se mencionó, tendrá que utilizar un resultado formateado; que se realiza a través de la Write()
, WriteLine()
, Format()
, y ToString()
métodos.
Lo que no se ha mencionado es el Formato de punto fijo que permite un número especificado de decimales. Utiliza una ' F 'y el número que sigue a la' F ' es el número de lugares decimales salidos, como se muestra en los ejemplos.
Console.WriteLine("{0:F2}", 12); // 12.00 - two decimal places
Console.WriteLine("{0:F0}", 12.3); // 12 - ommiting fractions
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-09 03:00:14