Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Quitar Puntos a Numeros (https://www.clubdelphi.com/foros/showthread.php?t=80934)

ingabraham 26-09-2012 17:39:12

Quitar Puntos a Numeros
 
hola manejo delphi 7.

tengo unos datos numericos que poseen decimas
ej: x= 1.200,34


quiero quitarle los puntos a los miles y que las decimas me salgan con puntos.

a los que quieran saber es para armar un archivo plano.

el dato quedaria asi:

x= 1200.34

gracias espero me allan entendido lo k kiero.:D

kapcomx 26-09-2012 18:03:17

ansireplacestr
 
puedes utilizar la funcion ansireplacestr

en esta pagina se explica mejor
http://delphiallimite.blogspot.mx/20...-texto-ii.html

Saludos:cool:

cloayza 26-09-2012 18:10:51

Deberías hacer uso de DecimalSeparator y ThousandSeparator:

Código Delphi [-]
procedure TForm3.Button1Click(Sender: TObject);
var
value:Single;
begin
     value:=1200.34;

     Memo1.Lines.Add('Value:'+FloatToStr(value));

     {Cambio Decimal=, Miles=.}
     FormatSettings.DecimalSeparator:=',';
     FormatSettings.ThousandSeparator:='.';

     Memo1.Lines.Add('(9.999,9) Value:'+formatFloat('#,###.0',value));

     {Cambio Decimal=. Miles=,}
     FormatSettings.DecimalSeparator:='.';
     FormatSettings.ThousandSeparator:=',';

     Memo1.Lines.Add('(9,999.9) Value:'+formatFloat('####.0',value));
end;

Espero te ayude, saludos cordiales

ecfisa 26-09-2012 19:34:56

Hola.

Código Delphi [-]
...
var
  s: string;
begin
  s := '1.200,34';
  s := StringReplace(s, '.', '', [rfReplaceAll]);
  s := StringReplace(s, ',', '.', [rfReplaceAll]);
  ShowMessage(s);
  ...

Saludos.

ingabraham 26-09-2012 23:23:36

exacto eso era lo que necesitaba.
gracias x su ayuda
pienso k el ultimo esta bien entendible , sin desmeritar a los demas

gracias a todos x su atención.;)

Lepe 27-09-2012 10:48:45

Pero más vale entiendas el fondo de la cuestión.

Un número no tiene ni puntos ni comas. Eso es el formato que se le añade cuando el número se convierte a texto con formato y el "decimalseparator" es precisamente lo que se usará cuando se quiere cambiar a texto.

Haciendo un stringReplace:
- primero: dejas que el sistema use el punto y la coma de forma errónea para la conversión a texto
- segundo: buscas en el texto carácter a carácter para reemplazar el punto por la coma. Encima son 2 reemplazos consecutivos.

Si desde el primer momento estableces el separador decimal y de miles, haces un programa eficiente.

cloayza 27-09-2012 15:45:45

Y que pasaría si:

Código Delphi [-]
var
  s: string;
begin
  //Que pasaría si cambio el formato del número a:
  s := '1,200.34'; //1.200,34
  s := StringReplace(s, '.', '', [rfReplaceAll]);  // 1,20034
  s := StringReplace(s, ',', '.', [rfReplaceAll]); // 1.20034

  ShowMessage(s); //1.20034 ?:confused:
  ...

Creo que no es la mejor forma...
Saludos cordiales

Casimiro Notevi 27-09-2012 16:16:57

je, je, je...
Código Delphi [-]
var
  s:string;
begin
  s := '1,200.34';
  s := StringReplace(s, '.', '@', [rfReplaceAll]); // 1,200@34
  s := StringReplace(s, ',', '.', [rfReplaceAll]); // 1.200@34
  s := StringReplace(s, '@', ',', [rfReplaceAll]); // 1.200,34
  ShowMessage(s);
end;

ecfisa 27-09-2012 16:27:43

Hola.

No había reparado que el dato estaba en formato numérico:
Cita:

Empezado por ingabraham (Mensaje 445465)
tengo unos datos numericos que poseen decimas

En ese caso:
Código Delphi [-]
var
 s : string;
 ch: Char;
begin
  ch := DecimalSeparator;
  DecimalSeparator := '.';
  s  := FormatFloat('0.00', ValorNumerico);
  DecimalSeparator := ch;
  ...

Saludos.

ElMug 27-09-2012 23:19:55

Depende de la base de datos, el aspecto visual de la data se puede corregir en lo que se llama "collation" y son ajustes parametrizados, o pueden formar parte de un query o meta-comando. La data guardada sigue igual.


La franja horaria es GMT +2. Ahora son las 20:11:35.

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