Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

duda con Tipo variable Float

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: duda con Tipo variable Float Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

¿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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Perdonar la demora

GRACIAS a los dos
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.