Formato de cadena de CultureInfo
-
13-09-2019 - |
Pregunta
Quiero mostrar signo de libra y el formato 0.00 yo.e £45.00, £4.10 .Estoy utilizando la siguiente instrucción:
<td style="text-align:center"><%# Convert.ToString(Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets")), new System.Globalization.CultureInfo("en-GB")) %></td>
Pero no es trabajo.¿Cuál es el problema.
¿Puede alguien ayudarme???
Solución
Utilice la href="http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx" rel="noreferrer"> cadena de formato estándar junto con el método string.Format que toma un proveedor de formato:
string.Format(new System.Globalization.CultureInfo("en-GB"), "{0:C}", amount)
El CultureInfo puede actuar como un proveedor de formato y también le dará el símbolo de moneda correcta para la cultura.
Su ejemplo sería el siguiente (espacio para facilitar la lectura):
<td style="text-align:center">
<%# string.Format(new System.Globalization.CultureInfo("en-GB"),
"{0:C}",
Convert.ToSingle(Eval("tourOurPrice"))
/ Convert.ToInt32(Eval("noOfTickets")))
%>
</td>
Otros consejos
¿Qué tal
<%# (Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets"))).ToString("C", New System.Globalization.CultureInfo("en-GB")) %>
Trate de especificar de forma exacta el formato de moneda
String.Format(...CultureInfo("en-GB"), "{0:C}"....
Esto debería funcionar:
<td style="text-align:center">
<%# String.Format( new System.Globalization.CultureInfo("en-GB"), "{0:c}", Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets")) %>
</td>
quería añadir una respuesta relacionada adicional para mostrar cómo utilizar un objeto CultureInfo clonado en un string.Format () o StringBuffer.AppendFormat (). En lugar de la moneda, sin embargo, era mi necesidad de formatear la AM / PM designador para la guía de estilo de mi empleador. Esto es lo que hice:
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);
Usted puede hacer lo mismo con string.Format ():
string strMsg = string.Format(culture, "Last modified: {0:M/d/yyyy h:mm tt}", ad.DateModified);