Pero.... El Decimal Es El "." O Es ","?¿?


Objetivo: Pero.... El Decimal Es El "." O Es ","?¿?
Estoy hecho un lio, en algunas maquinas resulta que el decimal es el "." (punto)
Y en otras maquinas linux el decimal es la "," (coma)

El resultado, en algunas maquinas los programas funcionan y en otras no funcionan.

Que soluciones tenéis para que los text boxbox decimales sean siempre y para todas la máquinas.... decimales?

Un saludo

BrunoIV
Objetivo: Re: Pero.... El Decimal Es El "." O Es ","?¿?
Creo recordar que gambas usas el punto para separa los decimales... ¿Por qué no transformas esa coma en un punto?

DIM aux AS String
DIM i AS Float

aux = TextBox1.Text

IF aux LIKE ("*,*") 'Si tiene coma la reemplaza
aux = Replace(aux, ",", ".")
END IF
i = CFloat(aux)

PRINT i * 2


¿Te sirve?

Objetivo: Re: Pero.... El Decimal Es El "." O Es ","?¿?
Amigo, creo que estás equivocado. No es gambas quien decide si el . es decimal o no, es el propio sistema operativo y deberías revisar la configuración local de la máquina en que instalas.

Lo siento.

Si lo que necesitas es un textbox que lea números en coma flotante, con un determinado número de decimales, etc. eso es otro tema. Abre otro hilo (yo tengo un textbox de esas características).

Antonio

Perfil MP  
Objetivo: Re: Pero.... El Decimal Es El "." O Es ","?¿?
Bruno, eres un tio realmente positivo.
De cada linea de código que pegas aprendo algo... (que por otra parte no cuesta mucho ya que más novato que yo... ninguno)

Es posible que no me haya expresado bien, ya que veo que Antonio me explica que el decimal depende de la configuración regional.
Si, efectivamente, el punto o la coma como decimal allí se especifica, pero supongo que existirá algún método para comprobar como esta configurado el sistema para saber como actuar en ambos casos.

En la mayoría de programas se depende de variables que están en una base de datos, si están en Mysql almacenados siempre con ".", estos datos se cargan a un formulario, y de ese formulario o textbox se realizan operaciones, que no son exactas o bien calculadas en función de si el sistema esta configurado como "." o como ",".

La pregunta:
¿Que método usáis para saber como esta configurada la "configuración regional"?

BrunoIV
Objetivo: Re: Pero.... El Decimal Es El "." O Es ","?¿?
Hasta @ahtonio no lo había dicho no tenía ni idea de este problema.. Pero bueno.. Se me ocurre un método para saber si es "," o "." (solo sirve para eso)

Retorna true si el separador es "," y false si es otro
PRIVATE FUNCTION coma() AS Boolean
DIM fVar AS Float
'DIM sNum AS String = "2,21"

TRY fVar = 2.21
IF ERROR THEN
RETURN TRUE
END IF

RETURN FALSE
END


Edito:
Según me comenta jguardon por IRC hay una función que hace lo mismo isFloat(2,1) retorna true si es Float. Con esto y la primera respuesta que de dije (cambiar el caracter) imagino que te podrás apañar..

última edición por BrunoIV el Lunes, 08 Agosto 2011, 18:19; editado 2 veces
Objetivo: Re: Pero.... El Decimal Es El "." O Es ","?¿?
se puede hacer una divicion con resultado en decimales como 11/5

y revisar el resultado es 2.2 o 2,2

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4235s (PHP: -79% SQL: 179%)
Consultas SQL: 46 - Debug off - GZIP Activado