• Sábado 27 de Abril de 2024, 07:24

Autor Tema:  Re: Problema con decimales  (Leído 5163 veces)

Nikli

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Problema con decimales
« en: Miércoles 20 de Noviembre de 2002, 20:13 »
0
Hola Grupo:

    Tengo el siguiente problema que me tiene de cabeza. Yo uso Visual Basic 6.0 y 5.0, y en ambos pasa lo mismo. Cuando cambio la configuración regional, los valores formateados que muestro por pantalla, o en un Reporte son mostrados incorrectamente.

    He realizado varias pruebas, y no entiendo por qué ocurre ni como solucionarlo.

    La configuración regional que uso con los programas es ceparación decimal Punto (.) y separador de Miles (,). el problema es que algunos programas la utilizan al revez, por lo que se debe estar cambiando constantemente, ya que al cambiarlo, éstos programas no funcionan correctamente, lo cual no es óptimo.

    Les cuento algunas pruebas que he hecho:

    Si lo configuro con separador decimal Punto, y hago un val de un valor como "30.4" que es devuelto de un SQL a un TextBox, me entrega el valor correcto.
Si lo configuro con separador decimal Coma, y hago un val de un valor como "30,4" que es devuelto de un SQL a un TextBox, me entrega el valor sin decimales, en cambio si hago un val del valor "30.4" el valor es entregado correctamente. Lo cual me parece muy extraño.

    Además me di cuenta que hay algunos SQLs, que entregan los valores con Punto, y Otros con Coma, por lo que al mostrarlos en un DataGrid, o un Reporte, muestran los valores erroneamente, con muchos ceros o algo así. No he podido determinar que tipo de consultas entrega el valor siempre con Punto, y cuales devuelven lo que dice la configuración decimal.

    Si alguien sabe por qué ocurre esto, o como solucionarlo, agradecería lo postearan.

javierbalk

  • Miembro MUY activo
  • ***
  • Mensajes: 142
  • Nacionalidad: 00
    • Ver Perfil
    • Print preview y grabar PDF en Visual Basic 6
Problema con decimales
« Respuesta #1 en: Sábado 23 de Noviembre de 2002, 11:00 »
0
No sé el tema de las consultas SQL, pero en cuanto al Val, esta función siempre toma el punto como el separador decimal.

Puedes probar cambiando Val por CSng, que es una función que convierte los valores a Single, la acabo de probar y anda bien ya que convierte los valores según la configuración regional, lo único que si le das los valores cambiados ahí lo hace mal.

Saludos,

Javier