我有一个双精度数字要转换为int64_t
,我正在使用static_cast
,当我使用double
和使用{{1}时,这会给我不寻常的结果}。
我尝试了所有可能的双精度数,其中某些数字给出了不寻常的结果,例如float
给出了8.2
等。
这两个功能是:
使用819
:
double
使用int a = static_cast<int64_t>((double)9.7*100);
:
float
1和2的预期输出为970,但是对于1来说,我得到969,对于2来说,我得到了正确的结果970。