Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Puntuacion decimal (https://www.clubdelphi.com/foros/showthread.php?t=86610)

lbidi 08-09-2014 18:25:16

Puntuacion decimal
 
Estimados.

Tengo un proyecto en XE2 por el cual leo archivos .txt e inserto datos en una BD, luego de realizar ciertas operaciones matematicas con los datos que leo.

Sucede que en dichos archivos siempre los datos vienen en formato decimal con "," ex 13,2.

En el oncreate de mi formulario tengo el siguiente codigo.
Código Delphi [-]
    Application.UpdateFormatSettings := false;
    FormatSettings.DecimalSeparator  := '.';
    GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, asetting );
    aSetting.ThousandSeparator := ',' ;
    aSetting.DecimalSeparator  := '.' ;

aSetting es una variable de tipo TFormatSetttings.

Luego ademas tengo cuando leo y proceso la informacion este codigo.
Código Delphi [-]
     cValor_Hallado := StringReplace( cValor_Hallado, ',' , '.' , [rfReplaceAll] );
     nValor         := StrToFloat( Trim( cValor_Hallado ), aSetting );

Antes de hacer la segunda sentencia, el valor de cValor_Hallado es "14,2" ( ejemplo ) y luego
la variable nValor me queda 14.2 con el formato 99,99 :mad::mad:

Como puedo hacer para que me tome siempre formato 99.99 y que ademas sea independiente de la configuracion regional que posea la pc en donde se ejecute el sistema ?

Gracias

ecfisa 08-09-2014 18:32:53

Hola Ibidi.

No he usado XE2, pero fijate si este modo te lo resuelve:
Código Delphi [-]
  SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL,  '.'); // ó ','
  DecimalSeparator:= '.'; // ó ','

Saludos :)

lbidi 08-09-2014 20:59:18

Funciona perfecto.

Gracias ecfisa

Saludo cordial


La franja horaria es GMT +2. Ahora son las 00:38:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi