Здравствуйте!
Понадобилось отделить дробную часть от числа (копейки отделить от рублей).
Подскажите, что я делаю не так?
На выходе надо получить два целых числа — рубли и копейки.
char tmp[1024];
double zz;
double yy;
int i;
// извлекаю в переменную yy дробную часть от 3.03, умножаю её на 100 и кладу в yy
yy = modf(3.03, &zz) * 100; // здесь yy = 3
sprintf(tmp, "%f", yy); // tmp = "3.000000"
MessageBox(NULL, tmp, "modf", MB_OK);
// извлекаю из yy целую часть в zz
modf(yy, &zz); // а вот здесь начинается мистика - zz почему-то равен 2 ???
sprintf(tmp, "3 = %f", zz);
MessageBox(NULL, tmp, "modf", MB_OK);
i = (int) yy;
sprintf(tmp, "3 = %d", kop);
MessageBox(NULL, tmp, "modf", MB_OK);