solo - quitar decimales c#
forzar una cadena a 2 lugares decimales (5)
Basado en MSDN, debería poder expresar la máscara de formato dentro de la llamada a DataBinder.Eval
.
http://msdn.microsoft.com/en-us/library/2d76z3ck%28VS.90%29.aspx
Básicamente, deberías poder hacer esto y forzar solo 2 decimales para mostrar:
<%# DataBinder.Eval(Container.DataItem, "pricerange", "{0:##0.00}")%>
Tengo un elemento repetidor que muestra un doble. de vez en cuando el doble parece estar saliendo con 3 lugares decimales como este 1165.833. Estoy tratando de forzarlo a dos lugares decimales envolviéndolo en un método de string.format pero aún sale lo mismo:
<%# String.Format("{0:f2}",DataBinder.Eval(Container.DataItem, "pricerange").ToString())%>
¿Alguna idea de por qué?
Intente no llamar a ToString()
en la salida del método Eval
; no puede formatear una cadena con cadenas de formato numérico.
Puedes usar:
String.Format("{0:0.00}",value);
simple: DataBinder.Eval(Container.DataItem, "pricerange").ToString("C2")
más @ http://msdn.microsoft.com/pt-br/library/dwhawy9k(v=vs.110).aspx#CFormatString
String
simplemente no implementa IFormattable
. Para usar el formato, elimine .ToString () para que no esté pasando una cadena.
<%# String.Format("{0:f2}",DataBinder.Eval(Container.DataItem, "pricerange"))%>
Para ver esto más explícitamente, ejecute este código:
Console.WriteLine(string.Format("{0:f2}", "123.888"));
Console.WriteLine(string.Format("{0:f2}", 123.888));
que salidas
123.888
123.89