У меня есть код, который работает на разных платформах, которые, похоже, получают разные результаты. Я ищу правильное объяснение.
Windows:
double dbl = -123.45;
int d_cast = (unsigned int)dbl;
// d_cast == -123
WinCE (ARM):
double dbl = -123.45;
int d_cast = (unsigned int)dbl;
// d_cast == 0
EDIT:
Спасибо за указание в правильном направлении.
Исправить обходной путь
double dbl = -123.45;
int d_cast = (unsigned)(int)dbl;
// d_cast == -123
// works on both.