Necesito mantener la cultura al convertir el doble en una cadena y también redondear a un solo decimal.
Convertir doble a cadena con cultura:
((12275454.8).ToString("N", new CultureInfo("sl-SI")));
Da salida:
12.275.454,80
Convertir doble a cadena con solo un decimal:
string.Format("{0:F1}",12275454.8)
Da salida:
12275454.8
La segunda salida no tiene cultura, la primera salida no se redondea a un decimal. ¿Cómo combinar ambos métodos?
2 respuestas
Simplemente use la cadena de formato de su segundo ejemplo en su primer ejemplo, es decir:
((12275454.8).ToString("N1", new CultureInfo("sl-SI")));
Editar: Se cambió el formato de F1 a N1 según la solicitud. La diferencia entre ambos es que N además usa miles de separadores, mientras que F no. Para obtener más detalles, consulte https://msdn.microsoft. com / es-US / library / dwhawy9k (v = vs.110) .aspx
Puede establecer la cultura "sl-SI"
como predeterminada :
using System.Threading;
...
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("sl-SI");
string test = string.Format("{0:F1}",12275454.8);
Agregue try..finally
si desea cultura "sl-SI"
solo para un bloque de código:
var savedCulture = Thread.CurrentThread.CurrentCulture;
try {
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("sl-SI");
// Let's work with "sl-SI" for a while
string test = string.Format("{0:F1}",12275454.8);
...
}
finally {
Thread.CurrentThread.CurrentCulture = savedCulture;
}
Preguntas relacionadas
Nuevas preguntas
c#
C # (pronunciado "see sharp") es un lenguaje de programación multi-paradigma de alto nivel, estáticamente tipado desarrollado por Microsoft. El código C # generalmente se dirige a la familia de herramientas y tiempos de ejecución .NET de Microsoft, que incluyen .NET Framework, .NET Core y Xamarin, entre otros. Use esta etiqueta para preguntas sobre el código escrito en las especificaciones formales de C # o C #.