C++ 类型强制转换算术运算


 #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 的练习题,我被困在我的代码中的最后一个 print 语句上。特别是我输入浮点数的部分(us_popn/w_popn)。有没有一种快速而肮脏的方法可以将结果转换为 cout 语句中的浮点数,而无需手动将结果存储在浮点变量中?我问这个是因为似乎在 cout 语句中的整数除法前面放置浮点数的类型转换似乎不会影响它,并且由于截断,我最终得到 0。

您必须在

除法之前强制转换操作数,否则将转换结果:

static_cast<float>(us_popn)/static_cast<float>(w_popn)

最新更新