Это действительно основной вопрос, я тестирую зЬй :: COUT для печати поплавка, следующие работы правильно:Std :: cout не печатает ожидаемый поплавок?
std::cout<<10/3.2<<std::endl; //Output: 3.125
Но когда я пытаюсь:
std::cout<< 500000/1000000<<std::endl; //Output: 0
Почему выход моего второй пример не 0,5? Это автоматически округляет?
Я компиляция с g++ -std=c++14
Потому что это не поплавок. – harold
'500000/1000000' - это * не * выражение' float', это выражение 'int'. Сделайте это 'float' с литой или' double', добавив '.0' к одному или обоим числам. – dasblinkenlight
Оба операнда являются целыми числами, поэтому вы просто выполняете целочисленное деление. Заставьте один операнд плавать или удваивать, чтобы выполнить двойную операцию. –