#include <iostream>
int main()
{
long long w_popn;
long long us_popn;
std::cout << "Enter the world's population: ";
std::cin >> w_popn;
std::cout << "Enter the population of the US: ";
std::cin >> us_popn;
std::cout << "The population of the US is " << float (us_popn/w_popn) << "% of the world population" << std::endl;
return 0;
}
В настоящее время я задаю некоторые вопросы по упражнениям из C++ primer plus, и я застрял в самом последнем заявлении печати в моем коде. В частности, часть, где я печатаю float (us_popn/w_popn). Есть ли быстрый и грязный способ превратить результаты в плавающее число в инструкции cout без необходимости вручную сохранять результаты в переменной float? Я спрашиваю об этом, потому что кажется, что введение типа float перед целым делением в выражении cout не влияет на него, и я получаю 0 в результате усечения.C++ type cast a арифметическая операция
Попробуйте 'поплавок (us_popn)/w_popn'. Вы производите тип результата деления двух целых чисел на 'float', который бесполезен, вы должны отличать _before_ операцию, так что оба операнда будут тогда' float', что даст результат с плавающей запятой. – legends2k
Я бы рекомендовал не использовать (float) x/y, но использовать x/(float) y, это точно означает, что вы выполняете деление по плавающей запятой и логически точнее. –