none
Problemas con decimales RRS feed

  • Pregunta

  • Hola a todos,

    Tengo un variable string que contiene un valor de importe en formato de dos enteros y dos decimales pero esta separado por punto y necesito que se convierta de coma.

    Lo mismo me sucede con otra variable string y que separa los miles con comas y los decimales con punto.

    Me vienen dados en ese formato de la llamada a un webservices.

    Necesito que se muestren en un informe cambiando el punto de decimales por coma y la coma de miles por punto.

    He probado varias opciones vistas en internet pero no lo consigo.

    Os agradecería muchísimo vuestra ayuda en esto.

    Espero noticias vuestras al respecto.

    Sin mas y agradeciendo vuestra colaboración, recibid un cordial saludo.

    Miguel

    martes, 12 de diciembre de 2017 22:05

Respuestas

  • ¿Estás seguro que quieres forzar al formato a '0.0,00' con independencia de la configuración regional establecida en el sistema operativo donde se ejecuta la aplicación?, si es lo que buscas entonces es simple, por ejemplo:

    string oldFormat = "123,456.00";
    string newFormat = oldFormat.Replace('.', '*').Replace(',', '.').Replace('*', ',');

    • Marcado como respuesta MiguelVB miércoles, 13 de diciembre de 2017 8:35
    martes, 12 de diciembre de 2017 23:35
  • Otra forma es intentar convertir a un valor numérico, basado en el formato con el que llega el valor, y luego convertirlo al formato esperado, por ejemplo:

    string newFormat = decimal.Parse(oldFormat, CultureInfo.GetCultureInfo("en-US")).ToString("N2", 
                                        CultureInfo.GetCultureInfo("es-ES"));

    • Marcado como respuesta MiguelVB miércoles, 13 de diciembre de 2017 8:35
    martes, 12 de diciembre de 2017 23:55
  • Buenos días Williams,

    Me sirvió correctamente.

    Un saludo y gracias

    Miguel

    • Marcado como respuesta MiguelVB miércoles, 13 de diciembre de 2017 8:35
    miércoles, 13 de diciembre de 2017 8:35

Todas las respuestas

  • ¿Estás seguro que quieres forzar al formato a '0.0,00' con independencia de la configuración regional establecida en el sistema operativo donde se ejecuta la aplicación?, si es lo que buscas entonces es simple, por ejemplo:

    string oldFormat = "123,456.00";
    string newFormat = oldFormat.Replace('.', '*').Replace(',', '.').Replace('*', ',');

    • Marcado como respuesta MiguelVB miércoles, 13 de diciembre de 2017 8:35
    martes, 12 de diciembre de 2017 23:35
  • Otra forma es intentar convertir a un valor numérico, basado en el formato con el que llega el valor, y luego convertirlo al formato esperado, por ejemplo:

    string newFormat = decimal.Parse(oldFormat, CultureInfo.GetCultureInfo("en-US")).ToString("N2", 
                                        CultureInfo.GetCultureInfo("es-ES"));

    • Marcado como respuesta MiguelVB miércoles, 13 de diciembre de 2017 8:35
    martes, 12 de diciembre de 2017 23:55
  • Buenos días Williams,

    Me sirvió correctamente.

    Un saludo y gracias

    Miguel

    • Marcado como respuesta MiguelVB miércoles, 13 de diciembre de 2017 8:35
    miércoles, 13 de diciembre de 2017 8:35