| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Lun 26 Ene, 2009 8:19 pm Asunto: duda con Tipo variable Float |
|
|
Buenas:
He tenido un problema con una variable del tipo Float,me daba error cada vez que la intentaba inicializar con el valor 0.5
Al final el problema era que el sistema operativo (XP) estaba configurado para ACEPTAR los numeros reales con la COMA DECIMAL no con el PUNTO DECIMAL.
Mi pregunta es la siguiente dado que el programa que estoy realizando puede se utilizado en un sistema operativo en el que los numeros reales
solo sean valido con la coma decimal ¿Puedo desde mi programa configurar el sistema operativo (y donde) para que acepte los numeros reales con el punto decimal?? y asi el programa pueda funcionar en cualquier Equipo.
Gracias |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Lun 26 Ene, 2009 11:20 pm Asunto: |
|
|
¿Por qué no usas la variable global DecimalSeparator para saber cual es el separador, si punto o coma, y actuar en consecuencia?.
Saludos. |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Mie 28 Ene, 2009 10:20 am Asunto: |
|
|
Gracias por contestar
Mi problema radica en que aun sabiendo de antemano que separador se usa no se como dar la orden al sistema operativo para que acepte el PUNTO decimal si no es el standar. |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Mie 28 Ene, 2009 1:24 pm Asunto: |
|
|
Acepta tu la coma y la pasas a punto antes de convertir el String a float.
Así no tienes que cambiar las configuraciones de usuario.
Saludos. |
|
| Volver arriba |
|
 |
rauls66 Lt Cmdr

Registrado: 20 Abr 2008Mensajes: 119
|
Publicado: Jue 29 Ene, 2009 8:00 pm Asunto: |
|
|
Una manera cutre que yo hice en un programa era primero comprobar que la configuración regional fuese correcta, si no aparecía un mensaje de advertencia, y el usuario debía cambiar manualmente la configuración. Existen mejores maneras pero yo no las sé utilizar.
char SeparadorMiles[1];
char SeparadorDecimal[1];
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, SeparadorMiles, sizeof(SeparadorMiles));
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, SeparadorDecimal, sizeof(SeparadorDecimal));
if(*SeparadorMiles==',') ShowMessage.........
if(*SeparadorDecimal=='.')ShowMessage....... |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Mar 03 Feb, 2009 5:53 pm Asunto: |
|
|
Perdonar la demora
GRACIAS a los dos |
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Mar 03 Feb, 2009 9:58 pm Asunto: |
|
|
hola neg1414, para cambiar la config desde tu programa puedes hacerlo accediendo al registro esta es la ruta | Código: | [HKEY_CURRENT_USER\Control Panel\International]
|
saludos tor _________________ Un experto es aquel que ya ha cometido todos los errores posibles en una materia muy concreta.
(Niels Bohr) |
|
| Volver arriba |
|
 |
|