variable solo quitar mostrar float declarar decimales datos con c# asp.net double repeater

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);



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