Hola,
Eso es un metodo valido, pero te dara warnings y perderas la parte decimal totalmente. Yo por ejemplo, en mi proyecto, me he creado una funcion para redondear a un numero determinado de decimales, para lo que separo parte decimal y parte entera, pero sigue siendo posible usar ambas.
double CDoc::CutAndRoundNumberToNDecimals (double dValue, const int nDec)
{
double dTemp = 0, dFract = 0, dInt = 0, dRes = 0;
dTemp = dValue*pow(10,nDec);
dFract = modf (dTemp, &dInt);
if (dFract >= 0.5)
dInt++;
dRes = dInt/pow(10,nDec);
return dRes;
}