Problema con long double / int

extinct
18 de Junio del 2008
Hola, bueno el problema es que quiero convertir un long double que contiene decimales, a un int.

El caso es que tengo:

long double n;
int t;

t = n; // Con esto la T al ser int, solo pilla la parte entera de N, pero a veces no funciona.

Por ejemplo:

N = 3.245
T = 3

N = 12.25
T = 12

N = 4
T = 3 // Esto deberia ser 0, ya que la N es 4.00 no?

Pues si N es un entero, me peta. Quizas por que N sea 3.999 períodico.. Pero no se que solución puede tener ésto?

También probé:

t = atoi("n"); // Pero en éste caso la T = 0 siempre, que raro no?


Bueno si alguien me puede dar una solución se lo agradecería, saludos.