Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Tamaño de un Doble

Estas en el tema de Tamaño de un Doble en el foro de C/C++ en Foros del Web. Saludos Tengo lo siguiente: double sub_total; sub_total=0.00; Luego a ese sub_total le aplico operaciones matematicas, es decir el valor temina siendo algo asi 52636.25 Ahora ...
  #1 (permalink)  
Antiguo 20/03/2007, 09:51
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Tamaño de un Doble

Saludos

Tengo lo siguiente:

double sub_total;
sub_total=0.00;

Luego a ese sub_total le aplico operaciones matematicas, es decir el valor temina siendo algo asi 52636.25

Ahora requiero saber la longitud en caracteres de ese nùmero.

Probe con esto:

int A = strlen(sub_total);

Pero me da el error:

error: incompatible type for argument 1 of `strlen'

Como puedo saber la longitud en caracteres de ese nùmero ??
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #2 (permalink)  
Antiguo 20/03/2007, 10:23
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Re: Tamaño de un Doble

Saludos

Pase el Double a Char y luego le aplique el strlen
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #3 (permalink)  
Antiguo 21/03/2007, 06:28
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Tamaño de un Doble

Seguramente lo que hiciste fue pasarlo a una cadena de caracteres, no creo que pudieras pasarlo a un char.

El error era porque la funcion strlen recibe un parametro de tipo "char *", es decir un puntero a char y tu le estabas pasando un valor del tipo double.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #4 (permalink)  
Antiguo 26/03/2007, 09:15
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Re: Tamaño de un Doble

Bien, lo que hie fue esto:

char mystring[50];
sprintf(mystring, "%11.2f", sub_total);

int A=strlen(mystring);

Dejo de darme el error, y pense que ya estaba listo.

Pero cuando mando a imprimir el valor de A:

printf("%d", A);

Me pinta siempre un 11 ... asi que no debe estar haciendo bien el strlen.

Còmo lo podrìa solucionar??
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #5 (permalink)  
Antiguo 26/03/2007, 12:10
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Re: Tamaño de un Doble

Bueno, como les cuento esto, jejejeje

Resulta que mystring tenìa unos espacios en blanco, y por eso siemper me contaba el strlen mal.

Le aplique esta funciòn que consegui en estos mismos foros:

void blanks(char* str)
{
int i = 0;
int j = 0;

while((*(str + i) = *(str + j++)) != '\0')
if((*(str + i)) != ' ' || (*(str + j)) != ' ' && i > 0)
i++;
}

Antes de hacer el strlen.

Funciono perfecto.

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #6 (permalink)  
Antiguo 26/03/2007, 17:00
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: Tamaño de un Doble

Cita:
Iniciado por José Molina Ver Mensaje
Bien, lo que hie fue esto:

char mystring[50];
sprintf(mystring, "%11.2f", sub_total);

int A=strlen(mystring);

Dejo de darme el error, y pense que ya estaba listo.

Pero cuando mando a imprimir el valor de A:

printf("%d", A);

Me pinta siempre un 11 ... asi que no debe estar haciendo bien el strlen.

Còmo lo podrìa solucionar??
De todas maneras, esto siempre te iba a dar 11 porque tu le estas indicando que siempre te de 11:

sprintf(mystring, "%11.2f", sub_total);

Ahi esta, le dices que el numero tenga 11 cifras enteras y 2 decimales.
Quitale eso y tambien te debe funcionar.

SAludos
  #7 (permalink)  
Antiguo 27/03/2007, 08:34
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Re: Tamaño de un Doble

Uhmm ya veo.

Pero le dejo solamente la "%f" ?? Eso no me guardaria por ejemplo 2334.55555

Ese numero no me sirve, porque debería ser 2334.55
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #8 (permalink)  
Antiguo 27/03/2007, 08:46
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Tamaño de un Doble

Usa entonces %.1f, solo coloca un decimal y toma los espacios que necesite.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #9 (permalink)  
Antiguo 27/03/2007, 15:24
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: Tamaño de un Doble

Mas bien, no uses double, usa float.....

Saludos
  #10 (permalink)  
Antiguo 29/03/2007, 10:14
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Re: Tamaño de un Doble

Jejejeje

Que enredo.

Y si ahora quiero darle formato a esos números que estoy imprimiendo?

El 2345.67 que sea 2.345,67

Existe una función para eso?
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #11 (permalink)  
Antiguo 29/03/2007, 20:53
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: Tamaño de un Doble

Pues no conozco una funcion que haga eso, pero vamos, se puede crear.
Aun asi, no me gusta la idea. Aqui en Mexico usamos el punto como PUNTO DECIMAL y la coma es solo una separacion de millares. No s eporque quieren forzosamente cambiarlo a coma decimal y a apostrofeseparador o punto separador......

SAludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:58.