es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El sitio de IIS tiene CurrentCulture en-GB, pero la moneda es R. ¿Dónde puedo actualizar esto?

Estoy teniendo problemas con el formato de la moneda.

Estoy usando ASP.NET MVC 4 y mi sitio está alojado en IIS 10 WS2019 en la región del Reino Unido.

La siguiente cadena me está dando una salida incorrecta:

@string.Format("{0:C}", paymentAmount)
@string.Format(CultureInfo("en-GB"), "{0:C}", paymentAmount)

SALIDA – “R2,500.00”

Esperaba “£2500.00”

No me importa la ubicación de la coma, pero el símbolo de la moneda es lo que me preocupa.

Cuando intento lo siguiente:

@string.Format(CultureInfo("en-US"), "{0:C}", paymentAmount)

Obtengo “$2500.00”.

Este código funciona correctamente en otros servidores alojados en India.

¿Qué debo hacer?

ACTUALIZACIÓN
He podido resolver este problema simplemente agregando “en-GB” como mi cultura actual en el archivo web.config.

<globalization culture="en-GB" uiculture="en-GB"></globalization>

Lo anterior no es una solución definitiva, sino una solución provisional. Sin el código anterior, cuando verifico currentCulture, es en-GB y currentUICulture es en-US, pero el símbolo de la moneda es “R”. Cuando lo establezco explícitamente nuevamente en en-GB, el problema desaparece.

He verificado el Registro y la configuración regional del servidor, y tienen el símbolo “£”.

El machine.config y el web.config no configuran explícitamente “R” como símbolo de moneda.

¿Dónde más debo revisar?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en c#, asp.net-mvc-4 y CultureInfo, sugeriría verificar lo siguiente:

    1. Verificar si hay otros ajustes de idioma o configuración cultural que estén anulando los ajustes predeterminados en el servidor, como en el perfil del usuario o en la configuración de la cuenta.
    2. Verificar si el servidor tiene instalados los paquetes de idioma o las actualizaciones adecuadas para la configuración cultural requerida, especialmente para el inglés del Reino Unido.

    3. Intenta especificar la cultura explícitamente en el código, como ya has hecho, pero también intenta especificar el símbolo de moneda explícitamente utilizando la propiedad NumberFormatInfo del objeto CultureInfo.

      Por ejemplo:

      CultureInfo ukCulture = new CultureInfo("en-GB");
      ukCulture.NumberFormat.CurrencySymbol = "£"; // establecer explícitamente el símbolo de moneda en libra esterlina
      string formattedPayment = string.Format(ukCulture, "{0:C}", paymentAmount);
      

    4. Si el problema persiste, considera contactar el soporte de Microsoft o los foros de la comunidad para obtener ayuda adicional.

Comments are closed.