Conversion de double a int

16/11/2004 - 12:16 por Sergio | Informe spam
Hola grupo,
¿Hay alguna manera de decirle al compilador que las conversiones de
double a int las haga como las hacemos nosotros?

Me explico:

#include <stdio.h>
#include <math.h>

void main()
{
int x;
double y = 2.40000;
x = y;
printf("%d",x);
getchar();
}

Este código mostraría 2, y si cambio el valor de y a 2.6 (pj) sigue
valiendo 2, cuando a mi me interesaría que fuera 3 (>= 0.5 -> +1 < 0.5
-> +0).

De la única manera que he conseguido hacer que x tenga el valor correcto
es así:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

void main()
{
int x;
double y = 2.40000;
char c[10];
sprintf(c,"%.0f",y);
x = atoi(c);
printf("%d",x);
getchar();
}

Haciendo una conversión a string y pasando el valor de la cadena a la
variable integer.

Me parece muy extraño que haya que pasar por una variable alfanumérica
cuando solo quiero tratar valores numéricos.

¿Alguna idea?

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
16/11/2004 - 12:38 | Informe spam
La funcion ceil o ceilf es lo que buscas


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 Sergio
16/11/2004 - 12:53 | Informe spam
Rodrigo Corral [MVP] wrote:
La funcion ceil o ceilf es lo que buscas





ceil(2.4) o ceil(2.6) devuelven los dos 3.
con floor devolverían 2, no me sirven.
Respuesta Responder a este mensaje
#3 Rodrigo Corral [MVP]
16/11/2004 - 14:22 | Informe spam
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#4 Sergio
17/11/2004 - 08:27 | Informe spam
Rodrigo Corral [MVP] wrote:
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))






Pues ahora que lo leo, la verdad es que la solución es más sencilla de
lo que yo pensaba, yo empeñandome en buscar algo complicado. Muchas gracias.
Respuesta Responder a este mensaje
#5 Rodrigo Corral [MVP]
17/11/2004 - 09:31 | Informe spam
Suele pasar!!!!


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida