Может кто-нибудь объяснить, почему rounding 0.5
до FE_TONEAREST
дает 0
? Разве это не должно давать «1»? Есть ли способ «исправить» это?C++ rounding to FE_TONEAREST
#include <fenv.h>
#include <iostream>
#include <cmath>
int main() {
fesetround(FE_TONEAREST);
std::cout << "Rounding 0.5 to nearest = " << std::rint(0.5) << std::endl;
return 0;
}
Runnable код на coliru: http://coliru.stacked-crooked.com/a/9c179ca56f251628
Это только предложение. Но может быть, это что-то напольное и потолочное? ** ОБНОВЛЕНИЕ **: да, это [ссылка] (http://www.cplusplus.com/reference/cfenv/fesetround/) – Mikhail