480 == 479 ???
От: Abalak США  
Дата: 13.10.03 13:47
Оценка:
Господа, есть такая функция:
unsigned long LongFromDouble(unsigned long dw)
{
    unsigned long ret = 0, l = 0;
    double d = 0, d2 = 0;

    d = (double)dw / 100000.0;
    l = (unsigned long)d;
    d2 = ((d*100000.0) - (l*100000.0));        
    ret = (unsigned long)d2; //Здесь 480 становится 479  :( 
    return ret;
}

Если в нее передать 480, то на выходе получим 479
Проц Р4 2.8, IDE VC++ 6.0 sp5
Ума не приложу, что быть может, число вроде бы не большое?
Re: 480 == 479 ???
От: Профессор кислых щей  
Дата: 13.10.03 13:50
Оценка: 1 (1)
Здравствуйте, Abalak, Вы писали:

A>Если в нее передать 480, то на выходе получим 479


Смотрим, к примеру, здесь
Автор: doronin
Дата: 29.11.02
.
Re: 480 == 479 ???
От: Left2 Украина  
Дата: 13.10.03 13:50
Оценка: 3 (2)
ret = (unsigned long)d2 + .5; //Здесь 480 становится 480
Re[2]: 480 == 479 ???
От: Left2 Украина  
Дата: 13.10.03 13:52
Оценка:
Сорри, конечно имелось в виду

L>ret = (unsigned long)(d2 + .5); //Здесь 480 становится 480


ОписАлся
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.