2009-07-14 5 views
14

Piattaforma: C# ASP.NET 3.5DataBinding Eval Per 2 cifra decimale non visualizza 0

Ho un controllo ListView che costruisce un campo di velocità che è decimale, se ho semplicemente <% #Eval("Rate") %> si vede 4.5000 invece di 4,5 se io lo uso <% #Eval("Rate","{0:#.##}") %> mostra 4.5 ma non visualizza 0

qualsiasi suggerisce su come associare il campo decimale, ma mostrano ancora 0

Grazie

Lee

+1

È possibile utilizzare più facilmente queste stringhe di formattazione utilizzando .NET SellDesigner di .NET Sell- http://www.sellsbrothers.com/tools/#FormatDesigner – RichardOD

risposta

26

Utilizzando #.## nel formato significa che dovrebbe nascondere 0. Utilizzare 0.00 invece:

<%# Eval("Rate", "{0:0.00}") %> 

vedere questi esempi:

String.Format("{0:0.00}", 123.4567); // "123.46" 
String.Format("{0:0.00}", 123.4);  // "123.40" 
String.Format("{0:0.00}", 123.0);  // "123.00" 
String.Format("{0:0.##}", 123.4567); // "123.46" 
String.Format("{0:0.##}", 123.4);  // "123.4" 
String.Format("{0:0.##}", 123.0);  // "123" 
+0

ottimamente funzionante. String.Format ("{0: 0. ## } ", 123.0); – monkeylee

11

Hai provato questo:

<% #Eval("Rate","{0:F2}") %> 
+0

Questa è una soluzione migliore/pulita –

-3

A lato server Converti 2 decimali in 1 posto. (valore decimale) .ToString ("0.0");

1

Questo potrebbe funzionare, si aggiunge anche un separatore di gruppo: <%# Eval("Rate", "{0:n2}")%>

0

Oltre a utilizzare <% #Eval("Rate","{0:F2}") %> Io uso anche: style="text-align:right" Invece di cercare di rendere il formato di fare il numero corretto di cifre. Ovviamente questa potrebbe anche essere un'impostazione CSS nel file css, invece di CSS in linea.

Problemi correlati