![]() |
Como le saco la coma o el punto a un número?
como le saco la coma o el punto a un número?
Estos ejemplos son de tamaños, el que es con coma es de win98 el de los puntos es de WinME. Ej: 1,024,000 o 1.024.000 -----> 1024000 |
No veo clara tu pregunta. Si es un número no tendrá puntos ni comas como separador de millares, sino que dependerá del formato con que se muestre, es decir que el mismo número podrá verse con separador de millares o sin él, dependiendo del formato que le apliquemos.
Un Saludo. |
Veamos no se si lo que tu te refeires, es que a ti te pasan una cadena con ese formato y quieres guardarla en una variable de tipo numerico (integer por ejemplo) o no.
SI es esto... usa StrToInt que creo que te sirve... sino deberías hacer lo siguiente: Recorrer a cadena, y si la posicion actual es un numero la pasas a otra auxiliar y si es una coma o un punto no las metes en la auxiliar. De esta forma en la cadena auxliar te quedaría un numero al cual, ya le puedes apicar StrToInt (o lo que sea.. StrToFloat,...) function quitaseparadores (cad: string): string; var aux: string; i,,jlong: integer; begin long:=cad[0]; // sacamos la longitud de la cadena original j:=1; // sirve para indicar donde se inserta en la cadena aux for i:=1 to long do if ((cad[i]<>',')and(cad[i]<>'.') then begin aux[j]:=cad[i]; // copio en la cadena auxiliar inc(j); // aumento j para insertar en la siguiente posicion end; end; Espero que no tenga muchos fallo este codigo.... :D |
Para añadir algo al mensaje anterior, decir que delphi nos proporcina una serie de variables en las que nos dice que simbolo se esta usando para los separadores de miles, los decimales, el separador de fechas, ya que todo esto puede cambiar segun la configuración del ordenador (ver configuracion regional del panel de control de windows si no sabes de lo que te estoy hablando).
Si utilizas la variable "THOUSANDSEPARATOR" esta te devolvera el separador de decimales que esta usando windows en ese momento. Por lo que propongo que el codigo del IF mandado en el mensaje anterior se sustituya por el siguiente: if (cad[i]<>THOUSANDSEPARATOR) then Con lo que siempre te funcionara el codigo sea cual sea tu configuracion en windows. |
En el panel de control->configuración regional->Número puedes cambiar el simbolo de separación de miles, puedes poner nada si te apetece.
Las variables de entorno de los separadores de miles y etc... solo tienen que ver con la presentación en pantalla o impresora (cuando windows escribe el número en un canvas) o cuando transformas un tipo númerico a cadena con por ej.: FloatToStr(x); Si tratas los números como real, integer, currency puedes operar con ellos sin que te afecten las comas o los puntos. Un saludo. |
La franja horaria es GMT +2. Ahora son las 22:16:50. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi