Question

Je veux montrer le signe dièse et le format 0.00 i.e. £ 45.00, 4.10 £. J'utilise la déclaration suivante:

<td style="text-align:center"><%# Convert.ToString(Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets")), new System.Globalization.CultureInfo("en-GB")) %></td>

Mais il ne fonctionne pas. Quel est le problème.

Quelqu'un peut-il me aider ???

Était-ce utile?

La solution

Utilisez la chaîne de format standard Devise avec la balise string.Format méthode qui prend un fournisseur de format:

string.Format(new System.Globalization.CultureInfo("en-GB"), "{0:C}", amount)

Le CultureInfo peut agir en tant que fournisseur de format et aussi vous obtenez le symbole monétaire correct pour la culture.

Votre exemple serait alors lecture (espacées pour une meilleure lisibilité):

<td style="text-align:center">
    <%# string.Format(new System.Globalization.CultureInfo("en-GB"), 
                      "{0:C}", 
                      Convert.ToSingle(Eval("tourOurPrice")) 
                             / Convert.ToInt32(Eval("noOfTickets")))
    %>
</td>

Autres conseils

Qu'en est-

<%# (Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets"))).ToString("C", New System.Globalization.CultureInfo("en-GB")) %>

Essayez de spécifier le format exact de la monnaie

String.Format(...CultureInfo("en-GB"), "{0:C}"....

Cela devrait fonctionner:

<td style="text-align:center">
<%# String.Format( new System.Globalization.CultureInfo("en-GB"), "{0:c}", Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets")) %>
</td>

Je voulais ajouter une réponse supplémentaire liée à montrer comment utiliser un objet CultureInfo cloné dans un string.Format () ou StringBuffer.AppendFormat (). Au lieu de la monnaie cependant, mon besoin était de formater le désignateur AM / PM pour le guide de style de mon employeur. Voici ce que je faisais:

var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.AMDesignator = "a.m.";
culture.DateTimeFormat.PMDesignator = "p.m.";
....
var msg = new StringBuilder();
msg.AppendFormat(culture,"Last modified: {0:M/d/yyyy h:mm tt}", ad.DateModified);

Vous pouvez faire la même chose avec string.Format ():

string strMsg = string.Format(culture, "Last modified: {0:M/d/yyyy h:mm tt}", ad.DateModified);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top