我有在不同平台上运行的代码,似乎得到不同的结果.我正在寻找一个正确的解释.
Windows:
double dbl = -123.45;
int d_cast = (unsigned int)dbl;
// d_cast == -123
Run Code Online (Sandbox Code Playgroud)
WinCE(ARM):
double dbl = -123.45;
int d_cast = (unsigned int)dbl;
// d_cast == 0
Run Code Online (Sandbox Code Playgroud)
编辑:
谢谢你指出了正确的方向.
修复变通方法
double dbl = -123.45;
int d_cast = (unsigned)(int)dbl;
// d_cast == -123
// works on both.
Run Code Online (Sandbox Code Playgroud)