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?
 

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

Preguntas similares